我有一个相当大的数据集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)
但由于我的数据集很大,我正在寻找一种方法来制作子集而无需键入每个子集命令。 有人有经验吗?
答案 0 :(得分:2)
最简单的是split
分成list
data.frame
个
lst <- split(test_data, test_data$set)
然后在list
内进行处理。建议不要在全局环境中创建大量对象。如果我们需要按操作执行任何分组,那么来自group_by
的{{1}}或来自dplyr
的{{1}}将会很快