通过for循环将值附加到向量不起作用

Posted

技术标签:

【中文标题】通过for循环将值附加到向量不起作用【英文标题】:Append values to vector by for loop not working 【发布时间】: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) 【参考方案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

【讨论】:

以上是关于通过for循环将值附加到向量不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用变换填充向量后,新的 c++11 for 循环不起作用

从向量到空指针的memcpy(反之亦然)不起作用

Bjarne Stroustrup Book - Vector 和 For 循环 - 不起作用

更改文件名的简单循环不起作用

Jinja / Django for 循环范围不起作用

为啥这种 for 循环并行化在 Python 中不起作用?