gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:46:54 24 4
gpt4 key购买 nike

我有一个值数据框,我想用它来构建参数,稍后发送到一个单独的函数 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com