有时数据需要比向量更复杂的存储方式。幸运的是,R软件提供了很多的数据结构。常见的有数据框(data.frame)、矩阵(matrix)、列表(list)以及数组(array)。数据框类似于电子表格,矩阵类似于人们熟悉的矩阵数学计算,列表对于程序员比较熟悉。
1.创建数据框a <- data.frame("geneid1"=rep("TabHLH1",3),"geneid2"=c("TabHLH2.1","TabHLH2.2","TabHLH2.3"),"geneid3"=rep("TabHLH3",3))
结果如下:
geneid1 geneid2 geneid3
1 TabHLH1 TabHLH2.1 TabHLH3
2 TabHLH1 TabHLH2.2 TabHLH3
3 TabHLH1 TabHLH2.3 TabHLH3
加载函数包
library(dplyr)
library(tidyr)
将第二列以“.”分列
b <- a %>% separate(geneid2, c("gene","id"), "[.]")
结果如下
geneid1 gene id geneid3
1 TabHLH1 TabHLH2 1 TabHLH3
2 TabHLH1 TabHLH2 2 TabHLH3
3 TabHLH1 TabHLH2 3 TabHLH3
R语言使用技巧
当你要对按照数据框某一列的信息对文件进行分组时
1. 可以使用split函数
2. 可以使用group_by() 函数,但是这个函数不能方便你接下来对每个小的group进行更为复杂的操作。
3. group_split() 函数
4. group_nest() 函数以及nest()函数
具体参数可参考:
https://www.jianshu.com/p/2efbf6632dc6
group_list()可以把大的数据框按照某一列切分为小的数据框,这些小的数据框再组成一个list
参考: https://mp.weixin.qq.com/s/XGb3P6SY2UlZMgun_etFmg
nest()函数可以创建嵌套数据框,将多列多行组成一个列表,而这个列表单独成为一列,称为列表列。
nest() 函数有两种使用方式。当用于分组数据框时,nest() 函数会保留用于分组的列,而将其他所有数据归并到列表列中。
还可以在未分组数据框上使用nest(),此时需要指定嵌套哪些列。
使用这些函数时,要清楚输入输出的格式是什么,怎么样取值才能得到想要的格式,是使用appply还是lapply,以及map要根据实际情况来定。