R:在sapply中将变量名转换为字符串

时间:2012-09-07 00:53:15

标签: r

我发现要将变量名转换为字符串,我会使用deparse(substitute(x)),其中x是我的变量名。但是如果我想在一个sapply函数调用中这样做呢?

sapply( myDF, function(x) { hist( x, main=VariableNameAsString ) } )

当我使用deparse(substitute(x))时,我会得到类似X[[1L]]的标题。我想有实际的变量名称。任何帮助将不胜感激。

大卫

2 个答案:

答案 0 :(得分:10)

如果您需要名称,则迭代名称,而不是值:

sapply(names(myDF), function(nm) hist(myDF[[nm]], main=nm))

或者,使用mapplyMap同时迭代名称和值:

Map(function(name, values) hist(values, main=name),
    names(myDF), myDF)

在大多数情况下,你不应该使用deparsesubstitute,除非你正在进行元编程(如果你不知道它是什么,你就不会这样做)。< / p>

答案 1 :(得分:0)

这是一段对我有用的代码:

deparse(substitute(variable))