当我们处理生物大数据时经常遇到一个问题就是数据集拆分问题,根据条件筛选数据,汇总了当下常用的方法,如下:

1)采用行名、列名直接取子集


subdata <- data[c("row1", "row2"), c("col1", "col2")]

优点:方便,容易理解

缺点:对于大型数据集这样操作显的比较繁琐

2)采用行、列索引筛选数据


subdata <- data[c(10:21), c(2,6:7)]

优点:相对于第一种来说就便捷许多了,方便操作

缺点:容易取错数值

3)利用which和%in%操作


subdata <- data[which(data$Type == "type"),names(data) %in% c("A","B","C")]

优点:大型数据集操作更方便

缺点:初学者需要学习掌握

4)利用subset函数


subdata <- subset(data, Type == 2, Group = c("A","B","C"))

优点:大型数据集操作方便

缺点:初学者需要学习掌握

5)利用dplyr包中select和filter函数处理


subdata <- select(filter(data, Type == 2),c("A","B","C"))

优点:大型数据集操作方便,和subset类似

缺点:初学者需要学习掌握

个人推荐一般情况下使用subset,对于较复杂的数据集推荐用dplyr包处理完成。

参考资料:

1.https://www.r-bloggers.com/2016/11/5-ways-to-subset-a-data-frame-in-r/