用for循环在向量中重复元素

最高

我想从R中的3:50开始制作一个向量,看起来像

3 4 4 5 6 6 7 8 8 .. 50 50

我想在for循环中使用for循环,但它没有完成我想要的操作。

f <- c()
for (i in 3:50) {
  for(j in 1:2) {
    f = c(f, i)
  }
}

怎么了

阿克拉夫

使用该rep功能,以及使用循环逻辑索引的可能性...[c(TRUE, FALSE, TRUE, TRUE)]

rep(3:50, each = 2)[c(TRUE, FALSE, TRUE, TRUE)]

 ## [1]  3  4  4  5  6  6  7  8  8  9 10 10 11 12 12 13 14 14 15 16 16 17 18 18 19
## [26] 20 20 21 22 22 23 24 24 25 26 26 27 28 28 29 30 30 31 32 32 33 34 34 35 36
## [51] 36 37 38 38 39 40 40 41 42 42 43 44 44 45 46 46 47 48 48 49 50 50

如果将逻辑向量(TRUE/ FALSE)用作索引(inside [ ]),则aTRUE导致选择相应的元素,而aFALSE导致省略。如果逻辑索引向量(c(TRUE, FALSE, TRUE, TRUE))短于索引向量(rep(3:50, each = 2)在您的情况下),则索引向量将被重新格式化。

还有一个注意事项:每当您使用R代码时

 x = c(x, something)

要么

 x = rbind(x, something)

或类似的方法,您在R中采用了类似C的编程风格。这使您的代码异常复杂,如果使用大型(例如200MB +)数据集,可能会导致性能降低和内存不足的问题。R旨在为您节省那些对数据结构进行低级操作的麻烦。

R Inferno圈子2:生长的物体中阅读有关the嘴及其惩罚的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章