banner

R语言教程 Lesson 4 数据框Dataframe

  • Home
  • R语言教程
Scroll down
TIP

这些是本篇文章的标签,来发现更多感兴趣的内容吧
科研
R语言
生信分析

来源:BV1td4y1r7mL 人话R语言教程

  • 非常适合用来进行临床数据分析/RNA-seq进行分析

构建DataFrame

  • 构建DataFrame需要用到的函数是data.frame
  • 这个函数接受的参数是多个等长的向量,而且参数的名字将转化为列的名字,向量可以用变量来带入,也可以自己手搓一个向量

  • 温馨提示:要注意写作规范,在设置变量的时候要注意使用”<-“进行赋值,而且在这个符号前后要加空格
  • dataframe函数不指定数据类型,不像matrix只能使用一种数据类型,dataframe只要求每一列是一种数据类型

DataFrame的取值与替换

  • 取值与替换值:基本用法与matrix相同,可以用”,”取值,前后接受数值和数值型向量,也接受逻辑型向量

特殊取值用法:

  • “,”前后还接受与行列名相同的字符串向量
  • dataframe还可以用”$”进行取值,这个特异性地只对列取值,可以认为返回的已经是一个向量了,而且这个向量还可以嵌套另一个向量进行取值
    • 举例:对dataframe:student_score进行取值,取”name”列的内容,可以输入函数student_score$name
    • 如果要对student_score$name的内容进行进一步取值,可以用向量,比如要取name列的第2-3个,可以在name后面加上[c(2,3)],这种情况下取出来的是字符串型向量
    • 如果在student_score$name后面加上的是[单个数字],取出来的就是一个字符串变量了
  • 通过函数which构建逻辑型向量,进行取值
    • which函数:这个函数接受逻辑型向量,并且将逻辑型中true所处的位置返回,返回的内容是一个数值型向量,比如which(T,F,T)输出的结果是c(1,3)
    • 简单构建逻辑型向量的方法:通过比大小的运算符号,即”>”,”≥”,”<””≤””=””≠”来判断
    • 把前面的内容组合一下,比如我们可以构建函数student_score$score,然后再加上判定条件,比如”≥70”就组成了一个逻辑型向量
    • 我们把逻辑型向量和which函数组合起来,which(student_score$score≥70),得到的输出结果就是对应的位置,再把这个位置通过dataframe[行,列]进行取值,就可以得到我们想要的结果了
  • 通过函数%in%构建数值型向量,进行取值
    • %in%函数比较特别,它夹在两个数值型向量之间,即向量1%in%向量2
    • 这个函数的作用:判断向量1有没有在向量2中存在,返回的是布尔值,即True或False,然后我们可以通过logical取值的方法进行取值
  • which-[行,列]法取值和%in%函数取值的区别
    • which函数的取值,最终是转换为[行,列]的方式去取值,也就是如果which函数输出的结果超过了原datamatrix的行,列的取值范围,那便不能输出结果
    • %in%函数不存在这个问题,因为这个函数允许向量1不存在于向量2中,这种情况下输出FALSE就可以了

替换原则:取多少,替换多少

DataFrame行列名的替换

  • 函数:rownames和colnames
  • 这两个函数接受的输入数据值只能是matrix或dataframe,输出数据是向量,因此,换名问题的本质是向量的替换问题
Other Articles
Article table of contents TOP
  1. 1. 构建DataFrame
  2. 2. DataFrame的取值与替换
    1. 2.1. 特殊取值用法:
    2. 2.2. 替换原则:取多少,替换多少
    3. 2.3. DataFrame行列名的替换
Find Something Special?