我搜索过这个但是徒劳无功.问题是我有两个列表,首先是要重复的元素,例如
my.list<-list(c('a','b','c','d'), c('g','h'))
Run Code Online (Sandbox Code Playgroud)
第二个列表是每个元素重复的次数
repeat.list<-list(c(5,7,6,1), c(2,3))
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列表,其中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"
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助
用途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"
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |