r - 如何在R中循环中的最后一个元素之后附加到列表?
问题描述
我有向量名称: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]
。我认为这是因为我应该附加到我现在不是的向量的最后一个元素。任何输入表示赞赏。
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)
推荐阅读
- vba - VBA中的连接和日期格式
- python - SQLAlchemy 将 to_timestamp 函数的结果转换为日期
- arcore - 将 .FBX 导入到 android studio 中,无需任何材料
- javascript - 打印出所有重复项 - Javascript - 需要替代解决方案
- reactjs - 在 Antd 表单中切换可见性
- javascript - 如何使用 lodash 在数组中插入特定索引?
- angularjs - 无法实例化模块 angularUtils.directives.dirPagination 'angularUtils.directives.dirPagination' 不可用
- python - python不读取文件的第二行
- javascript - 无法在 React Chrome 扩展中调试单个浏览器操作 js 文件
- docker - Docker windows下的Kiwi TCMS问题