当我具有三个可以采用以下值的变量时,我就有一个数据集-2, -1, 0, 1, 2, 3, 4, 5
由于某些原因,我只想在观测值等于1, 2, 3, 4 or 5
时使用这些变量。换句话说,我想在var1/var2/var3=-2, -1 or 0
时放弃观察
我知道在Stata中这是通过命令DROP
(drop if var1 == 0 / drop if var1<0...
)来完成的。 R中是否有类似的等效项?谢谢
答案 0 :(得分:0)
如果您的data.frame为df
,则一种实现方法如下:
df <- data.frame( #an example
var1 = c(1, 2, 3),
var2 = c(-1, 3, 4),
var3 = c(2, 3, -2)
)
df
var1 var2 var3
1 1 -1 2
2 2 3 3
3 3 4 -2
df[apply(df, 1, function(x)
! any(x %in% c(0, -1, -2))), ]
var1 var2 var3
2 2 3 3
apply
函数在df
的行中向下运行,对于集合中没有(TRUE
)没有!
值的行,其作用为any
c(0, -1, -2)
。然后,此逻辑向量用于对df
的行进行子集化。