动态子集——由函数中定义的变量进行子集

  • 本文关键字:子集 变量 函数 动态 定义 char
  • 更新时间 :
  • 英文 :

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。大小写可以输入列名向量。

f <- function(X,d) {
     X[complete.cases(X[,d]),]
 }

你不需要一个函数。只做:

X[!is.na(X$v2),]

最新更新