R-如何根据条件向量对列表中存储的所有数据帧进行子集
这是我第一次在这里提问,所以如果我需要改变我的方式,请告诉我。我已经找了一段时间了,但还没有找到我需要的东西 我有一个3个数据帧的列表。它们具有相同的结构(变量),但观察次数不同。我想根据向量中存储的几个条件,为列表中的每个数据帧获取几个子集 如果我有5个条件,我需要得到,对于我列表中3个数据帧中的每一个,这些数据帧的5个子集,总共15个 例如:R-如何根据条件向量对列表中存储的所有数据帧进行子集,r,dataframe,lapply,R,Dataframe,Lapply,这是我第一次在这里提问,所以如果我需要改变我的方式,请告诉我。我已经找了一段时间了,但还没有找到我需要的东西 我有一个3个数据帧的列表。它们具有相同的结构(变量),但观察次数不同。我想根据向量中存储的几个条件,为列表中的每个数据帧获取几个子集 如果我有5个条件,我需要得到,对于我列表中3个数据帧中的每一个,这些数据帧的5个子集,总共15个 例如: df1 <-data.frame(replicate(3,sample(0:10,10,rep=TRUE))) df2 <-data.fr
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)
df1再次重叠,这一次在以下条件下:
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), ])
})
df1一个选项是使用%
中的%进行过滤,然后根据“X1”列对进行拆分
lapply(my_list, function(x) {x1 <- subset(x, X1 %in% conditions); split(x1, x1$X1)})
lappy(我的列表,函数(x){x1谢谢你的提示!
lapply(my_list, function(x) {x1 <- subset(x, X1 %in% conditions); split(x1, x1$X1)})