我有一个值的数据框,我想用它来构建参数,以便稍后发送到一个单独的函数myFunction(名称,大小,国籍)。例如。
name <- c("Batman", "Superman", "HeMan")
size <- c("Med", "Tall", "Enormous")
nationality <- c("American", "Kryptonian", "Eternian")
argVals <- data.frame(name, size, nationality)
请注意,每个列都有一个适当的名称,我希望将其用作稍后要传递给myFunction的参数名称,该函数需要每个正式参数。
我不确定是否应该创建一个后来传递给myFunction的字符串:
e.g。 &#34; name =&#39;超人&#39;,size =&#39; Med&#39;,国籍=&#39;美国&#39;&#34;
或者,如果我能找到一种方法直接将名称值传递给myFunction。
我尝试过使用各种粘贴方法,但我认为必须有一种更简单的方法。感谢。
注意:编辑以强调我对使用命名值调用函数的适当方法缺乏清晰度。
答案 0 :(得分:3)
如果您使用stringsAsFactors=FALSE
来阻止argVals
的元素转化为因素:
argVals <- data.frame(name, size, nationality,
stringsAsFactors=FALSE)
然后
as.list(argVals[1,])
## $name
## [1] "Batman"
## $size
## [1] "Med"
## $nationality
## [1] "American"
将生成具有适当值的命名列表,这可能是您想要的。 (或者你可以使用lapply(as.list(argVals[1,]),as.character)
,但它可能更简单/更清楚地阻止列首先被制成因子。)如果你有一个函数foo(name,size,nationality)
那么{{1将使用指定的参数运行该函数。