数据结构
新手最需要了解的是向量和数据框
标量和向量
标量 | 向量 |
---|---|
一个元素 | 多个元素的有序排列 |
数字或字符串 | 字符串使用时必须加引号 |
赋值
R中赋值符号是<-
1:10
1~10中所有的整数
seq(1,10, by=0.5)
1~10,间隔0.5取一个值
rep(1:3,times=2)
1~3重复2次
提取元素
- 根据元素的位置
x[4] #x第4个元素
x[-4]#排除法,除了第4个元素之外剩余的元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素
- 根据条件
x[x==10]#等于10的元素
x[x<0]#小于0的元素
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素
数据框(表格)
将文件放在在工作目录中,这样调用的时候不会报错
a<-read.csv("huahua.txt")
将huahua中的数据框赋予a
还可以自己根据需要调节参数
sep
两个元素之间分隔符
header
是否把第一行和第一列作为标题
quote
字符串不加双引号(默认是加的)
row.names=1
将第一列改为行名
colnames(a)
查看列名
rownames(a)
查看行名
colnames(a)[1]<-"xxxx"
将第1列的名改为特定的字符串
> X<-read.csv('doudou.txt')
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"#将第一列的header重新赋值
> X
bioplanet X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#将第一列作为行名,也就是原来的行名消失了,列数也变为了1列
> X
X2
A 1
B NA
C NA
D 3
E NA
元素提取
a$列名
将这一列的元素提取出来
a[x,y]
第x列,第y行
a[x,]
第x列
a[,y]
第y列
a[y]
第y列
a[x:y]
第x~y列
a[c(x,y)]
第x和第y列
数据框导出
保存a为,命名为xxx,分隔符为“,”,字符去掉双引号
write.table(a,file="xxx",sep=",",quote=F)
变量保存和重载
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量X
load("test.RData")#重载test.RData
attach(a)
将a放入一个小环境中,后面在使用a中的元素时可以不需要重复写a数据框的名字
detach(a)
将a从小环境中删除
with
常用于数据框,使R表达式位于数据框的作用环境中,便于对数据框变量的引用
with(a,{
+ plot(case,values)
+ x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
+ })
> x
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.07594 0.32302 0.50786 0.51776 0.70833 0.99144
可以将控制台中的代码复制至脚本中,保存脚本为后缀为“R”的文件,可以分享给别人也可以下载别人写好的脚本
save(X,file="test.RData")
这句代码如果报错X not found,是为什么,应该怎么解决?
因为X没有赋值,给将要保存的元素或者向量或者数据框赋值给X就可以保存了