我有一个像这样的矢量:a = c(1:10)我需要删除多个值,例如:2, 3, 5如何在向量中删除这些数字(它们不是向量中的位置)?此刻我循环向量并执行以下操作:a[!a=NUMBER_TO_REMOVE]但我认为有一个功能可以自动完成。
3 回答
米脂
TA贡献1836条经验 获得超3个赞
你可以用setdiff。
特定
a <- sample(1:10)
remove <- c(2, 3, 5)
然后
> a
[1] 10 8 9 1 3 4 6 7 2 5
> setdiff(a, remove)
[1] 10 8 9 1 4 6 7
阿波罗的战车
TA贡献1862条经验 获得超6个赞
你可以这样做:
> x<-c(2, 4, 6, 9, 10) # the list
> y<-c(4, 9, 10) # values to be removed
> idx = which(x %in% y ) # Positions of the values of y in x
> idx
[1] 2 4 5
> x = x[-idx] # Remove those values using their position and "-" operator
> x
[1] 2 6
不久
> x = x[ - which(x %in% y)]
- 3 回答
- 0 关注
- 736 浏览
添加回答
举报
0/150
提交
取消