R - 创建大数据集的不同子集

时间:2018-02-21 08:28:38

标签: r subset

我有一个相当大的数据集test_data,其中有超过30,000个观测值和20个变量 我想根据集合的数量制作较小的子集,这是在test_data$set下确定的。子集的大小会有所不同(如下所示)。

对于小型数据集,我会按如下方式对行进行子集化:

test_data <- data.frame(measurement=c(2,34,5,6,7,38,3,4,29,11,12,4,5,6,91,13,13,13,12))
test_data <- mutate(test_data,set=c(1,1,1,1,1,2,2,2,3,3,3,3,3,3,3,4,4,4,4))

set1 <- subset(test_data, set == 1)
set2 <- subset(test_data, set == 2)
set3 <- subset(test_data, set == 3)
set4 <- subset(test_data, set == 4)

但由于我的数据集很大,我正在寻找一种方法来制作子集而无需键入每个子集命令。 有人有经验吗?

1 个答案:

答案 0 :(得分:2)

最简单的是split分成list data.frame

lst <- split(test_data, test_data$set)

然后在list内进行处理。建议不要在全局环境中创建大量对象。如果我们需要按操作执行任何分组,那么来自group_by的{​​{1}}或来自dplyr的{​​{1}}将会很快