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

min*_*c12 1 loops for-loop r 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)
  }
}
Run Code Online (Sandbox Code Playgroud)

运行代码后,向量h根本不会改变,但它应该是c(1,2,8).

kee*_*gan 6

随着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)
  }
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*ven 5

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

k[!k %in% l]
# [1] 1 2 8
Run Code Online (Sandbox Code Playgroud)