1. 理解命令和函数代表的意思,才能灵活运用
2. 2个重要的数据类型:向量vector、数据框Data frame
3. 向量vector
3.1 变量赋值
3.2 向量中提取元素
方法:3.2.1 元素的位置
3.2.2 元素的值
4. 数据框
4.1 明确几个知识点
4.1.1 sep 是函数的形式参数,多数情况下, seq 参数用来指定字符的分隔符号。
不仅用在你所提到的输出,也用在输入,也用在字符串的合并与拆分上。
csv 文件是用逗号分隔的,故而 sep = ","
tsv 文件是用制表符分隔的,故而 sep = "\t"
常用的分隔符还有空格 sep = " "
分隔符是任意的,可根据具体情况指定的。
在输入的时候,原内容是用什么符号分隔的,sep就要保持一致,否则可能无法正确读取。在输出时虽说分隔符是可以任意指定,但也要遵循一个原则,就是分隔符号不要与待输出内容中的字符有重复。
否则输出后的文件,重新读取的时候该分隔符并不能有效正确分开,可能出错。
4.1.2 header=T
true则excel第一行用于列名称,具体数据从第二行开始
false则第一行即为具体数据
4.1.3 write.table (x, file ="", sep ="", row.names =TRUE, col.names =TRUE, quote =TRUE)
参数说明:
x:需要导出的数据
file:导出的文件路径
sep:分隔符,默认为空格(” “),也就是以空格为分割列
row.names:是否导出行序号,默认为TRUE,也就是导出行序号
col.names:是否导出列名,默认为TRUE,也就是导出列名
quote:字符串是否使用引号表示,默认为TRUE,也就是使用引号表示
4.1.4 p<-paste("b",1:5)
"b 1" "b 2" "b 3" "b 4" "b 5" 注意这里每一项中间有空格隔开,如果不想要空格,需要使用sep参数
p<-paste("b",1:5,sep="")
"b1" "b2" "b3" "b4" "b5"
所以sep参数的作用是隔开被连接在一起的数据,当然必须是character string,例如:
p <-paste("b",1:5,sep="f")
"bf1" "bf2" "bf3" "bf4" "bf5"
collapse通常不用给出,如果给出,则整个结果变为一个string,例如:
p <-paste("b",1:5,sep="f",collapse="s")
"bf1sbf2sbf3sbf4sbf5"
4.2 读取本地数据(必须放在工作目录里的数据)
4.3 设置行名和列名
4.4 数据框导出
write.table(X,file = "a.txt",sep = ",",quote=T)#分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
4.5 保存变量,重新加载
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
4.6 提取元素
X[x,y]#第x行第y列
X[x,]#第x行
X[,y]#第y列
X[y] #也是第y列
X[a:b]#第a列到第b列
X[c(a,b)]#第a列和第b列
X$列名#也可以提取列
4.7 直接使用数据框中的变量
4.7.1 方法1
b <-data.frame(case=paste("S",1:50)),values=runif(50))
plot(b$case,b$values)
4.7.2 方法2
b <-data.frame(case=paste("S",1:50)),values=runif(50))
attach(b)
plot(case,values)
4.7.3 方法3
b <-data.frame(case=paste("S",1:50)),values=runif(50))
with(a,{
plot(case,values)
x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
})
问题:1.save(X,file="test.RData")这句代码如果报错X not found
变量X不存在,或者错误定义。
解决方法:定义变量X。