美文网首页
2020-04-12 R学习--数据框的操作

2020-04-12 R学习--数据框的操作

作者: javen_spring | 来源:发表于2020-04-16 17:06 被阅读0次

数据框的操作涉及新建(读取),命名,增加列/行,删除列/行,求值及排序等。

新建/读取数据框

  • 新建数据框
student<-data.frame(ID,name,age,...)
  • read.table()函数、 read.csv()函数读取一个文本文件,返回的是一个Data Frame对象读取数据库也是返回Data Frame对象

数据框的命名

  • 查看数据框的行名及列名
    names()函数可以查看列名,row.names()函数查看列名
row.names(dataframe)<-student$ID
  • 重命名数据框的列的三种方式:

1.使用fix(data)函数,调用一个交互式的编辑器。然后单击变量名,然后在弹出的对话框中将其重命名;
2.names()函数重命名;
3.plyr包中有一个rename()函数,可用于修改变量名。

例如:

names(cgroup)[1]<-"sample"  ##修改第一列的变量名
names(cgroup)[2]<-"group"  ##修改第二列的变量名
##载入plyr包
library(plyr)
cgroup<-rename(cgroup,c(sample="sampleID"))  ##单个变量更名也需加c()函数

访问元素

  • 与Matrix一样,使用[行Index,列Index]的格式可以访问具体的元素。使用列名可以选取要访问的哪些列。
  • 使用attach()和detach()函数可以使得访问列时不需要总是跟着变量名在前面。
  • with()函数表示括号内的操作只针对括号内的数据进行:
with(dataframe,{
  n<-Name
  print(n)
})

增加新列/删除列

  • 如向student的数据框例添加年龄列(需根据出生日期计算,这里需要用到Sys.Date()函数获取当前日期,再用format()函数获取年份):
student$Age<-as.integer(format(Sys.Date(),"%Y"))-as.integer(format(student$Birthdate,"%Y”))

用within()函数简化为:

student<-within(student,{
  Age<-as.integer(format(Sys.Date(),"%Y"))-as.integer(format(Birthdate,"%Y"))
})
  • 删除列
    行或列的下标前加“-”。或者用dataframe$columnname
dataframe[-a,-b]  ##删除a行b列

查询子集

简单的是使用subset()函数。如查询student数据内女性且小于30岁的子集:

subset(student,Gender=="F" & Age<30 ,select=c("Name","Age"))

合并/连接

  • 列合并
    对多个Data Frame进行连接需要使用merge函数。
result<-merge(student,score,by.x="ID",by.y="SID")  ##对student及score数据框按照ID及SID(ID及SID相同)进行合并
  • 行合并
    rbind()函数进行行合并,此时要求两个数据框必须有相同的列名。
rbind(dataframe1,dataframe2)

待进一步更新......
参考网址
博客园深蓝居

相关文章

网友评论

      本文标题:2020-04-12 R学习--数据框的操作

      本文链接:https://www.haomeiwen.com/subject/fezmmhtx.html