![](https://img.haomeiwen.com/i23812555/39ff094d86a30346.png)
R语言向量和数据框
向量
向量和标量
- 向量是用于存储数值型、字符型或逻辑型数据的一维数组
- 标量是只含一个元素的向量
创建向量
a<-c(1,2,5,3,6,-2,4)
b<-c("one","two","three")
c<-c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE)
d<-3
#创建向量并赋值
![](https://img.haomeiwen.com/i23812555/08ead781e8d13453.png)
从向量中提取元素
1· 根据元素位置
> a<-c(1,2,5,3,6,-2,4)
> a[3]
[1] 5
> a[-3]
[1] 1 2 3 6 -2 4
> a[1:4]
[1] 1 2 5 3
> a[c(1,5)]
[1] 1 6
2· 根据值
> a[a==6]#等于6的元素
[1] 6
> a[a<4]#小于4的元素
[1] 1 2 3 -2
> a[a %in% c(5,4,3,2,1,0)]#存在于向量c(5,4,3,2,1,0)中的元素
[1] 1 2 5 3 4
数据框
读取本地数据
a<-read.table(file = "huahua.txt",sep = "\t",header =T)
#读取本地文件“huahua.txt"并赋值给a,文件以制表符分隔,第一列包含了变量名
- sep:分开数据值的分隔符,sep="\t"表示读取用制表符分割的行内数据的文件
- header:表示一个文件是否在第一行包含了变量名的
设置行名和列名
-
row.names
一个用于指定一个或多个行标记符的可选参数
row.nanmes=1
表示以第一列作为行名 -
col.names
如果数据文件的第一行不包括变量名(header=FASLE),你可以用col.names
去指定一个包括变量名的字符向量。
x<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)
数据框的导出
> X<-read.csv('doudou.txt')
> write.table(X,file = "yu.txt",sep = ",",quote=F)
quote
用于对有特殊字符的字符串划定界限的字符串。默认值是双引号(")或单引号('),quote=F
:字符串不加双引号
变量的保存与重新加载
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
![](https://img.haomeiwen.com/i23812555/d268189dc79bd64f.png)
提取元素
![](https://img.haomeiwen.com/i23812555/8f7456316609b457.png)
> X[1,2]#第1行第2列
[1] "m"
> X[2,]#第2行
age gender weight
2 30 f 115
> X[,3]#第3列
[1] 166 115 120
> X[3] #也是第3列
weight
1 166
2 115
3 120
> X[1:2]#第1列到第2列
age gender
1 25 m
2 30 f
3 18 f
> X[c(2,3)]#第2列和第3列
gender weight
1 m 166
2 f 115
3 f 120
> X$gender#也可以提取列(优秀写法,而且这个命令还优秀到不用写括号的地步,并且支持Tab自动补全哦,不过只能提取一列)
[1] "m" "f" "f"
【选修部分】直接使用数据框中的变量
- attach()、detach()用法
> attach(X)
> plot(age,weight)
> detach(X)
![](https://img.haomeiwen.com/i23812555/424aef32c6ef9780.png)
- with()的用法
with(X,{plot(age,weight)})
回答问题:save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?
答:"X","x"傻傻分不清楚
> save(X,file="test.RData")#X为大写
Error in save(X, file = "test.RData") : 目标对象‘X’不存在
> save(x,file="test.RData")#x为小写
网友评论