Kil*_*ian 22 string r function
我确信这很简单,但我找不到解决方案......我想使用包含字符串的变量作为函数的参数.
x <- c(1:10)
myoptions <- "trim=0, na.rm=FALSE"
Run Code Online (Sandbox Code Playgroud)
现在,像
foo <- mean(x, myoptions)
Run Code Online (Sandbox Code Playgroud)
应该是一样的
foo <- mean(x, trim=0, na.rm=FALSE)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
koh*_*ske 26
你可以使用eval和parse:
foo <- eval(parse(text = paste("mean(x,", myoptions, ")")))
Run Code Online (Sandbox Code Playgroud)
csg*_*pie 11
一种更自然的方式来做你想要的就是使用do.call.例如,
R> l[["trim"]] = 0
R> l[["na.rm"]] = FALSE
R> l[["x"]] = 1:10
##Or l <- list(trim = 0, na.rm = FALSE, x = 1:10)
R> do.call(mean, l)
[1] 5.5
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你真的想要使用myoptions字符串,你总是可以使用strsplit它来将它变成列表形式.例如,
R> y = "trim=0, na.rm=FALSE"
R> strsplit(y, ", ")
[[1]]
[1] "trim=0" "na.rm=FALSE"
R> strsplit(y, ", ")[[1]][1]
[1] "trim=0"
Run Code Online (Sandbox Code Playgroud)