R列出一个函数的部分

时间:2015-07-25 21:49:37

标签: r function

我有一个很大的函数,用于将变量类型分配给数据框中的列。

setVarType <- function(x){
    x$Species <- as.factor(as.character(x$Species))
    x$Sepal.Length <- as.numeric(as.character(x$Sepal.Length))
    return(x)
}

df1 <- setVarType(df1)

我刚刚创建了一个新版本的数据框,并且该函数正在崩溃,因为新数据集中缺少某些列名。有没有办法查看函数的结构并将所需的变量名称提取到向量中,以便我可以执行以下操作:

setdiff(functionVariables, dataFrameVariables)

1 个答案:

答案 0 :(得分:2)

我认为这就是你要找的东西:

getLValueDollarRHS <- function(pt) do.call(c,lapply(as.list(pt),function(pte) if (is.call(pte)) c(if (pte[[1]] == '<-' && is.call(pte[[2]]) && pte[[2]][[1]] == '$') as.character(pte[[2]][[3]]),getLValueDollarRHS(pte))));
getLValueDollarRHS(body(setVarType));
## [1] "Species"      "Sepal.Length"

演示内置函数:

getLValueDollarRHS(body(xtabs));
## [1] "data"               "..."                "exclude"            "drop.unused.levels" "sparse"