r - 如何从参数值的 DataFrame 动态创建正式参数 (R)

标签 r

我有一个值数据框,我想用它来构建参数,稍后发送到一个单独的函数 myFunction(name, size, nationality)。例如。

name <- c("Batman", "Superman", "HeMan")
size <- c("Med", "Tall", "Enormous")
nationality <- c("American", "Kryptonian", "Eternian")
argVals <- data.frame(name, size, nationality)

请注意,每一列都有一个合适的名称,我想将其用作稍后传递给 myFunction 的参数的名称,myFunction 需要这些正式参数中的每一个。

我不确定是否应该创建一个稍后传递给 myFunction 的字符串:

例如"name='Superman', size='Med', nationality='American'"

或者,如果我能找到一种方法将名称值直接传递给 myFunction。

我尝试过使用各种粘贴法术,但我认为一定有更简单的方法。谢谢。

注意:经过编辑以强调我对使用命名值调用函数的适当方式不够清晰。

最佳答案

如果您使用 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) 那么 do.call(foo,argVals[1,]) 将使用指定的参数运行该函数。

关于r - 如何从参数值的 DataFrame 动态创建正式参数 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666670/

相关文章:

r - 如何将字符对象添加到 ggplot2 : adding the % symbol to the percentage label in a bar chart 中的数字标签

r - 如何删除引号之间的文字?

迁移数据的玫瑰图

r - 使用摘要而不是原始数据的箱线图

r - 显示并删除 top_n 最长的 n 个持续时间

r - 如何替换数据框中某列的多个值?

r - 使用 R markdown、knitr、pandoc、beamer 绘图大小和分辨率

r - 如何计算数据点的比率,即根据某种标准将它们组合起来?

r - 绘制带有正方形和线条的图的放大插图图

regex - 更改r中字符串中单词的位置