我有一个函数,它将函数列表作为参数。从对象列表中获取其名称的字符向量
library(moments)
library(plyr)
tests <- list(mean, varience, skewness, kurtosis)
f <- function(X, tests){
out <- each(... = tests)(X) #each from plyr
names(out) <- GetNames(tests)
out
}
我想GetNames
采取的对象列表,在这种情况下的功能,并返回对象的名称为文本。理想情况下,我想GetNames
命名对象的任何名单的工作:
> GetNames(tests)
[1] "mean" "varience" "skewness" "kurtosis"
as.character(tests)
返回每个函数的代码的文本,而不是他们的名字。
我想:
GN <- function(X) deparse(substitute(X))
GetNames <- function(X) lapply(tests, GN)
GetNames(tests)
但这返回:
[[1]]
[1] "X[[i]]"
[[2]]
[1] "X[[i]]"
[[3]]
[1] "X[[i]]"
[[4]]
[1] "X[[i]]"
我有这个问题的一些版本频繁写入R代码里面的时候。我想要一个函数来评估它的参数的一些步骤,这里从tests
到它的对象名称的一步,然后停下来,让我对结果做些什么,在这里将它们转换为字符串,而不是继续获取我可以抓住他们(名字)之前的名字的指称。
我不确定我是否理解你的问题的一般版本,但如果这个问题出现了很多,可能有更好的方法来完成这些任务。 – MrFlick
感谢您的有用评论。 – andrewH