基于相应向量的单个值对列表中的数据帧进行子集

希利亚姆

我正在尝试根据向量中的值有条件地对 data.frames 列表中的 data.frames 进行子集化。基本上,每当a > 0我想对相应的列表元素进行子集化以拥有那么多随机采样的行时。

# a list
l <- list( data.frame(x=1:5, y = 1:5),
           data.frame(x= 11:15, y = 11:15),
           data.frame(x=21:25, y = 21:25) )

# a vector
a <- c(3, 1,-2) 

# one possible permutation of the desired output
[[1]]
  x y
1 1 1
2 3 3
3 5 5

[[2]]
   x  y
1 13 13

[[3]]
   x  y
1 21 21
2 22 22
3 23 23
4 24 24
5 25 25

我一直在尝试purrr::map_if()按如下方式执行此操作,但我的函数仅使用的第一个值a作为所有 data.frames 的行数。也就是说,列表的第一个和第二个元素是 3 行的子集,但我希望第二个元素只有 1 行。

f <- function(x, count) {x[sample(nrow(x), count),]}

purrr::map_if(l, a > 0, f, count = a)

有没有办法为 的每次迭代传递 'a' 中的值map_if()或者其他一些解决方案?

托马斯正在编码

带有Map+ 的基本 Rifelse

> Map(function(x, k) x[sample(nrow(x), ifelse(k > 0, k, nrow(x))), ], l, a)
[[1]]
  x y
3 3 3
4 4 4
5 5 5

[[2]]
   x  y
2 12 12

[[3]]
   x  y
2 22 22
1 21 21
5 25 25
3 23 23
4 24 24

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用行位置向量列表对数据帧列表中的行进行子集

根据向量列表对数据帧进行子集化

如何使用向量对数据帧列表进行子集

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

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

什么策略建议按月和年对数据帧进行子集化以获得R中的单个数据帧列表

如何基于另一个数据帧中的值对数据帧进行子集设置?

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

R中的子集数据帧基于向量中指定的列表(使用“开头为”表达式或等效形式)

从基于列子集的列表中删除重复的 Pandas 数据帧

如何基于向量对数据帧进行子集化,然后在dplyr中进行分组

基于列或相邻列中的值的数据帧子集

使用 lapply 将单个数据帧子集化为 R 中的数据帧列表

基于至少5个连续值的向量序列的子集数据帧

基于第二个数据帧中的值的子集数据帧

向量列表中的数据帧

根据列表中的值列表对数据框进行子集

返回数据帧中的相应值

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

通过将数据帧匹配到列表来对数据帧进行子集设置,并使用R在输出中也包含不匹配值

如何基于R中列向量的升序/降序对列表进行子集

使用向量作为参数对数据帧进行子集化

使用带有$的逻辑向量对数据帧进行子集

如何使用行级迭代从单个时间序列数据帧中对多个 Pandas 数据帧进行子集化?

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

基于多个字符串的部分匹配,在R数据帧中对行进行子集

如何基于基础R中的另一个数据帧对数据帧进行子集

问题基于两个单独的数据帧中的值子集列

基于数据帧R的子集的一列中“分类值”的百分比