列表中的每个元素对应于一个向量。我希望将向量中的所有元素更改为指定的值。例如:
x <- c("x1","x2","x3")
y <- list(1:5,1:10,1:15)
Ans <- list()
for (i in 1:length(y)){
Ans[[i]] <- rep(x[i],length(y[[i]]))
}这导致:
[[1]]
[1] "x1" "x1" "x1" "x1" "x1"
[[2]]
[1] "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2"
[[3]]
[1] "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3"在R中有一个函数可以处理这个问题吗?
发布于 2019-11-04 16:54:41
我们可以将lengths与split结合使用
unname(split(rep(x, lengths(y)), rep(seq_along(x), lengths(y))))
#[[1]]
#[1] "x1" "x1" "x1" "x1" "x1"
#[[2]]
# [1] "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2" "x2"
#[[3]]
# [1] "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3" "x3"或使用Map
Map(rep, x, lengths(y))https://stackoverflow.com/questions/58697319
复制相似问题