R:根据另一个列表重复列表的元素

标签 r list repeat

我已经搜索过这个,但徒劳无功。
问题是我有两个列表,首先是要重复的元素
例如

my.list<-list(c('a','b','c','d'), c('g','h'))

第二个列表是每个元素重复的次数
repeat.list<-list(c(5,7,6,1), c(2,3))

我想创建一个新列表,其中 my.list 中的每个元素都基于 repeat.list 重复
IE。
结果:
[[1]]
[1] "a" "a" "a" "a" "a" "b" "b"  "b" "b" "b" "b" "b" "c" "c" "c" "c" "c" "c" "d" 
[[2]]
[1] "g" "g" "h" "h" "h" 

预先感谢您的帮助

最佳答案

使用 mapply :

mapply(rep, my.list, repeat.list)
[[1]]
 [1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "b" "b" "b" "c" "c" "c" "c" "c" "c" "d"

[[2]]
[1] "g" "g" "h" "h" "h"
lapply也有诀窍,但更冗长:
lapply(seq_along(my.list), function(i)rep(my.list[[i]], repeat.list[[i]]))
[[1]]
 [1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "b" "b" "b" "c" "c" "c" "c" "c" "c" "d"

[[2]]
[1] "g" "g" "h" "h" "h"

关于R:根据另一个列表重复列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803585/

相关文章:

python - python中的随机列表选择

linux - grep linux 中的模式(重复/出现超过 n)

javascript - 在 javascript 或 php 中创建重复数组的最有效(紧凑)方式?

r - 使用坐标向量获取矩阵的元素

r - 是否可以在命令行中将代码通过管道传递给 R 或 R 脚本?

Python-有效检查列表是否存在并且元素是否存在于列表中

mysql - 如何通过单击 grails 中的按钮(.Groovy Server Pages 页面)从 Mysql 数据库获取表的所有值/行?

linux - 如何在 Bash 中运行多次相同的代码

R 对 data.frame 中两个变量的惰性求值

r - 添加缺失的时间值