【问题标题】:Append values to vector by for loop not working通过for循环将值附加到向量不起作用
【发布时间】:2015-01-13 19:43:42
【问题描述】:

基本上,我想在向量 k 中获取元素,而不是在向量 l 中,并将它们附加到向量 h。 这是我使用 for 循环的代码:

k=c(1,2,3,5,8,9)
l=c(3,5,7,5,7,9,64)
h=c()

for (i in k) {
  if (!(i %in% l)) {
    print(i)
    append(h,i)
  }
}

运行代码后,向量h完全没有变化,但应该是c(1,2,8)。

【问题讨论】:

  • 附加功能不起作用。但我找到了简单的工作选择:h = c(h,i)

标签: r loops for-loop append


【解决方案1】:

append 需要分配结果

k=c(1,2,3,5,8,9)
l=c(3,5,7,5,7,9,64)
h=c()

for (i in k) {
  if (!(i %in% l)) {
    print(i)
    h<-append(h,i)
  }
}

【讨论】:

  • 是的,@RichardScriven 的答案完全更好
【解决方案2】:

充分利用 R 的矢量化。你可以这样做

k[!k %in% l]
# [1] 1 2 8

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 2021-06-24
    • 2021-05-19
    • 2020-02-27
    • 2021-05-25
    • 2021-12-15
    • 1970-01-01
    • 2021-07-01
    • 2020-10-17
    相关资源
    最近更新 更多