gpt4 book ai didi

r - 如何在 R 中循环的最后一个元素之后追加到列表?

转载 作者:行者123 更新时间:2023-12-04 10:15:59 24 4
gpt4 key购买 nike

我有矢量名称:block_sizes=c(3,3,4) 我想制作一个列表,其中有 block_sizes[1] 个 1, block_sizes[2] 个 2 和 block_sizes[3] 个 3,等等

在这个例子中,我应该给 [3,3,4] 我的代码并得到 [1,1,1,2,2,2,3,3,3 ,3]

我写了下面的代码,但我不知道为什么它给我 [0,3,3,3,3]。我认为这是因为我应该 append 到 vector 的最后一个元素,而我现在没有。感谢任何输入。

vector=0
for (i in length(block_sizes )) {
buf=rep.int(i,times =block_sizes[i])
membership_vector=append(vector,buf)

}```

最佳答案

我们可以在没有任何循环的情况下使用 rep,因为 times 参数是矢量化的

rep(seq_along(block_sizes), block_sizes)
#[1] 1 1 1 2 2 2 3 3 3 3

或者为了更快的实现

rep.int(seq_along(block_sizes), times = block_sizes)
#[1] 1 1 1 2 2 2 3 3 3 3

或者如果我们需要一个循环

v1 <- c()
for(i in seq_along(block_sizes)) {
v1 <- c(v1, rep.int(i, times = block_sizes[i]))
}

数据

block_sizes <- c(3, 3, 4)

关于r - 如何在 R 中循环的最后一个元素之后追加到列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56709041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com