这是我第一次在这里提问,所以如果我需要改变我这样做的方式,请告诉我。我一直在寻找一段时间,我一直无法找到我需要的东西。
我有一个包含 3 个数据框的列表。它们具有相同的结构(变量),但观察的数量不同。根据存储在向量中的几个条件,我想为列表中的每个数据帧获取几个子集。
因此,如果我有 5 个条件,我需要为列表中的 3 个数据帧中的每一个获取这些数据帧的 5 个子集,总共 15 个。
例如:
df1 <-data.frame(replicate(3,sample(0:10,10,rep=TRUE)))
df2 <-data.frame(replicate(3,sample(0:10,7,rep=TRUE)))
df3 <-data.frame(replicate(3,sample(0:10,8,rep=TRUE)))
my_list <- list(df1, df2, df3)
conditions <- c(2, 5, 7, 4, 6)
我知道如何使用 lapply 为条件之一设置子集
list_subset <- lapply(my_list, function(x) x[which(x$X1 == conditions[1]), ])
但我想对向量条件中的所有值都这样做。我希望这是有道理的。
再次 lapply ,这次超过条件:
df1 <-data.frame(replicate(3,sample(0:10,10,rep=TRUE)))
df2 <-data.frame(replicate(3,sample(0:10,7,rep=TRUE)))
df3 <-data.frame(replicate(3,sample(0:10,8,rep=TRUE)))
my_list <- list(df1, df2, df3)
conditions <- c(2, 5, 7, 4, 6)
list_subset <- lapply(my_list, function(x) x[which(x$X1 == conditions[1]), ])
#One Way, Conditions on first list
list.of.list_subsets <- lapply(conditions,function(y){
lapply(my_list, function(x) x[which(x$X1 == y), ])
})
#The other way around
list.of.list_subsets2 <- lapply(my_list,function(x){
lapply(conditions, function(y) x[which(x$X1 == y), ])
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句