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 的子集,其中任何给定的列(输入到函数的参数中)都没有丢失?
注意:该函数subset
不应在函数中使用,而只能以交互方式使用(参见此处)。
f <- function(X, d) {
X[!is.na(X[d]), ]
}
> f(X,"v2")
v1 v2
1 1 a
2 2 b
如果您使用 complete.cases,您可以输入列名向量。
f <- function(X,d) {
X[complete.cases(X[,d]),]
}
你不需要一个函数。做就是了:
X[!is.na(X$v2),]