R:通过第三个字符串变量将参数名称以点(...)传递

美心

假设您有一个简单的函数,它指定要为每个变量运行哪些统计检验。为了这个问题的目的,简化了其语法,如下所示:

test <- function(...) {
  x <- list(...)
  return(x)
} 

它接受参数对(例如)Gender = 'Tukey',并打算将其结果传递给其他函数。的输出test()如下:

test(Gender = 'Tukey')
# $Gender
# [1] "Tukey"

所希望的是Gender用动态分配的变量替换文字的能力varname(例如,出于循环目的)。当前发生的是:

varname <- 'Gender'
test(varname = 'Tukey')
# $varname
# [1] "Tukey"

但是需要的是:

varname <- 'Gender'
test(varname = 'Tukey')
# $Gender
# [1] "Tukey"

我尝试修改诸如eval()和的功能parse(),但无济于事。实际上,我只是通过重命名结果列表来解决了该问题,但这是一个丑陋的解决方案,并且我相信有一种优雅的R方式可以实现此目的。在此先感谢您的回答具有教育意义。

注意:这个问题是我在尝试编写自定义函数的过程中遇到的mcp(),该函数effects包的内部使用。所述mcp()功能是的真实世界对应物test()

编辑1:也许需要澄清(出于教育目的)更改test()不是一种选择。问题是关于如何将棘手的参数传递test()如果您看一下NB,就会很清楚为什么:的真实世界对应物test(),即mcp()带有包装。尽管可以创建它的修改后的副本,但我真的很好奇是否存在一种简单的解决方案,可以在点参数的上下文中以某种方式将动态分配的变量“转换”为文字。

阿兰·奥卡拉汉

那这个呢:

varname <- "Gender"
args <- list()
args[[varname]] <- "Tukey"
do.call(test, args)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将第三个参数作为-1传递给memcmp返回0

不建议将编码作为第三个参数传递。使用明确的零偏移

如何通过参数将大于200个字符的字符串传递给存储过程

通过AsyncTask将值从第一个活动传递到第三个活动

通过R中匹配的第三个字符串/因数绘制数据

将字符串作为参数名称/值对传递给R函数

如何将RequestContext作为可选的第三个参数传递给render_to_response

如何将char数组的特定索引传递给outtextxy()函数在c中的第三个参数

传递给侦听器的第三个参数是什么?

Swift-将数据从TableView传递到第三个ViewController

无法通过查询字符串传递#个字符

如何在RedirectToAction中传递带有点的查询字符串参数名称

如何传递字符串作为参数名称?

如何使用scala通过spark中的一个或多个字符串参数传递selectExpr中的列名?

将路径参数/变量从批处理文件传递到 python,sys.argv[] 仅给出最后一个目录而不是整个字符串

在PowerShell中传递多个字符串参数

将第三个 SQL 表中的相关第三个类传递到具有 ViewModel 的视图中

R函数在第一个字符为0时将变量作为字符串传递

awk-连接两个字符串变量并分配给第三个

更改形状标记取决于 matplotlib 中的第三个字符串变量

如何打印字符串的每个第三个字符?java的

从Java中的第三个字符开始对字符串进行排序

R-比较两个字符串变量,并根据比较结果得出第三个变量

将文件作为一个字符串参数传递给bash函数

将参数列表作为一个字符串传递给python函数

将函数参数名称作为字符串传递

如何将字符串转换为参数名称并将其传递给函数?

numpy-numpy.r _ ['string integer',array]的第三个字符串整数的说明

Pytorch Geometric:如何将第二个或第三个参数传递给 from_networkx?