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

时间:2014-11-16 23:52:00

标签: r loops for-loop append

基本上,我想在向量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)。

2 个答案:

答案 0 :(得分:5)

使用R的矢量化对您有利。你可以做到

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

答案 1 :(得分:2)

使用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)
  }
}