v1 = c(1,2,3)
v2 = c("a","b",NA)
X = data.frame(v1,v2)
f = function(X,d){
subset(X,is.na(d)==0)
}
f(X,"v2")
如何获取X的子集,其中任何给定列(输入到函数的参数中)都不会丢失?
答案 0 :(得分:5)
注意:函数subset
不应仅在函数中使用,而应仅以交互方式使用(请参阅here)。
f <- function(X, d) {
X[!is.na(X[d]), ]
}
> f(X,"v2")
v1 v2
1 1 a
2 2 b
答案 1 :(得分:3)
如果使用complete.cases,则可以输入列名称向量。
f <- function(X,d) {
X[complete.cases(X[,d]),]
}
答案 2 :(得分:1)
您不需要功能。只是做:
X[!is.na(X$v2),]