【R】数据框data.frame的基本操作【1】

data.frame(数据框)是R语言中的一种数据结构,下面将从多个方面介绍data.frame的基本操作。
1.建立数据框

ID<-c(1,2,3,4)
age<-c(23,29,34,43)
diabetes<-c("Ty1","Ty2","Ty1","Ty1")
status<-c("poor","improved","excellent","poor")
patientdata<-data.frame(ID,age,diabetes,status)

其中patientdata即为数据框,它里面的每一列可以是不同的类型。

2.一些查看数据类型的指令

View(patientdata) #查看整个patientdata表(结果见下图)
> str(patientdata) 
'data.frame':	4 obs. of  4 variables:
 $ ID      : num  1 2 3 4
 $ age     : num  23 29 34 43
 $ diabetes: chr  "Ty1" "Ty2" "Ty1" "Ty1"
 $ status  : chr  "poor" "improved" "excellent" "poor"
patientdata<-data.frame(ID,age,diabetes,status,stringsAsFactors=T) #将列中的字符串类型转换为因子类型

#查看patientdata的类型
> class(patientdata) 
[1] "data.frame"
> mode(patientdata)
[1] "list"

运行View指令后的结果
运行View指令后的结果

3.提取元素的指令
提取元素数据框的元素(与对矩阵操作类似)。

> patientdata[[2]] #提取第二列的值
[1] 23 29 34 43
> patientdata$age  #提取age一列的值
[1] 23 29 34 43
> patientdata$age[2] #提取age一列的第二个元素
[1] 29

4.行列的添加

#添加列
> treatment<-c(1,0,1,1)  
> patientdata$treatment<-treatment
> patientdata
  ID age diabetes    status treatment
1  1  23      Ty1      poor         1
2  2  29      Ty2  improved         0
3  3  34      Ty1 excellent         1
4  4  43      Ty1      poor         1
#添加行
> new=list(5,53,"Ty2","improved",0) 
> rbind(patientdata,new)
  ID age diabetes    status treatment
1  1  23      Ty1      poor         1
2  2  29      Ty2  improved         0
3  3  34      Ty1 excellent         1
4  4  43      Ty1      poor         1
5  5  53      Ty2  improved         0
#在第3,4行之间添加行
> rbind(patientdata[1:3,],new,patientdata[4:length(patientdata),])
   ID age diabetes    status treatment
1   1  23      Ty1      poor         1
2   2  29      Ty2  improved         0
3   3  34      Ty1 excellent         1
4   5  53      Ty2  improved         0
41  4  43      Ty1      poor         1
NA NA  NA     <NA>      <NA>        NA

5.查看对应行列,元素的选取赋值

patientdata$ID<-NULL #删除ID所在的列
patientdata[c("age","ID")]<-NULL #删除多列
#筛选出patientdata中ID等于1,年龄大于30的数据
newdata<-patientdata[patientdata$ID==1&patientdata$age>30]
#用subset函数进行筛选
subset(patientdata,age>30&diabetes=="Ty1")
subset(patientdata,age>30|diabetes=="Ty1") #“|”表示或
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值