R - 如何根据条件向量对存储在列表中的所有数据帧进行子集

州长

这是我第一次在这里提问,所以如果我需要改变我这样做的方式,请告诉我。我一直在寻找一段时间,我一直无法找到我需要的东西。

我有一个包含 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]), ])

但我想对向量条件中的所有值都这样做。我希望这是有道理的。

Julian_Hn

再次 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:你如何对列表中的所有数据框进行子集化?

在 R 中,如何根据向量中的值对数据帧的行进行子集

根据R中的某些条件对数据帧进行子集

如何基于R中的条件对数据帧进行子集

如何基于r中组中的最后一个值对组中的所有数据进行子集

如何根据dataframe1中的值从dataframe2子集并将所有子集堆叠在R中的一个数据帧中?

如何使用R中的向量选择数据帧的子集

在 R 中对具有特定条件的数据帧进行子集

R:如何仅针对行子集和条件向现有数据帧添加新列

R:如何根据条件 DateTime 数据进行子集化

循环查看 R 中的所有数据帧

如何根据R中列名中的数字条件对数据进行子集化?

如何从带有数字指示的列表中获取R中的数据帧

如何根据多个联合条件在 R 中对数据框进行子集化

R中的条件子集数据帧

如何基于R中多个变量的条件向现有数据帧添加新变量?

如何创建循环以“取消计数” R环境中的所有数据帧?

如何根据R中向量的值转换数据帧的列?

在 R 中对反应数据帧进行子集

R:将所有数据帧行转换为字符向量

根据R中其他向量的条件为数据帧中的向量分配值

如何根据下一次出现在R中对数据帧进行子集化?

如何创建内部列表和向量R中的数据帧?

如何获取未在R中的向量中指定的数据帧的所有行?

在R中如何使用带有向量或数据帧的ifelse()进行分类

使用逻辑表达式向量对R中的数据帧进行子集

有条件地在R中的数据帧列表上进行映射

如何基于R中的条件组合对数据进行子集

R:遍历向量中的数据帧列表