【发布时间】:2021-10-17 21:16:12
【问题描述】:
我想创建几个不同长度包含0的向量。向量的长度不同,并存储在向量kj中。
k <- 12 # nr of vectors which might be changed
kj <- c(17, 2, 12,2,2,7,7,7,7,7,7,7 ) # lenght per vector which might be changed
为了能够快速调整向量的数量和它们各自的长度,我想过使用lapply()或for loop,但直到现在我都没有找到办法。
differences <- numeric() # starting object for storing vectors
for (i in 1:length(kj)){
vec <- rep(0,kj[i])
differences <- list(differences, vec)
}
给出一个非常嵌套的对象并且
lapply(0, rep, times = kj)
给出times 是一个无效参数的错误。我更喜欢稍后可以通过[i] 或[[i]] 访问向量的对象。创建它的最简单和最短的方法是什么?
在此先感谢,我是 R 和这里的新手,希望足够清楚。
【问题讨论】:
-
你可以使用
Map(rep, 0, kj)。 -
完美运行,非常感谢! :)
-
在您的
lapply尝试中,我认为您的意思是循环遍历“kj”:lapply(kj, function(x) rep(0, x)) -
是的,我就是这个意思,谢谢。这是我第一次尝试
lapply...