kuanguang 我不想使用index,也不想使用下面的方法, <br /> > x1=c(1,2,3,4,5,6)<br /> > x1[which(x1!=c(5,6))]<br /> [1] 1 2 3 4<br /> 这个方式感觉有点笨拙,请问,有无更加轻巧的方法,删除5,6这两个元素? </p>
kuanguang > x1=c(1,3,4,29,68,4,6,9) > x1 [1] 1 3 4 29 68 4 6 9 > x2=c(4,6) 我要得到1,3,29,68,9 为何这样不行 x1[which(x1 !=x2)] [1] 1 3 29 68 4 6 9 找到原因,长度的问题。
ayismas 第一个是碰巧得到了正确的结果,代码应该改写为: x1=c(1,2,3,4,5,6) x1[x1!=5&x1!=6] 相应的最后一个代码改写为下面即可: x1=c(1,3,4,29,68,4,6,9) x2=c(4,6) x1[x1!=x2[1]&x1!=x[2]]
Hoas %in%好像是值对应 x1 <- c(1, 3, 4, 29, 68, 4, 6, 9) x2 <- c(4, 6) x1[x1 %in% x2] #> [1] 4 4 6 x1[!(x1 %in% x2)] #> [1] 1 3 29 68 9 <sup>Created on 2019-04-21 by the reprex package (v0.2.1)</sup>