gpt4 book ai didi

r - 从一串函数名中选择一个函数,并通过管道连接到它

转载 作者:行者123 更新时间:2023-12-04 16:50:40 24 4
gpt4 key购买 nike

假设我有一个带有函数名称列表的 tibble(或数据框,等等)。比方说,像这样:

functions <- tibble(c("log()", "log10()", "sqrt()"))

我希望能够将数据集传输到这些函数之一,由索引选择。例如,我可能想要执行以下操作:
data %>% functions[[1]]

但我似乎无法让它发挥作用。我对管道很陌生,但我很确定这很容易,即使无法使用它!等等。

提前致谢。

最佳答案

1) match.fun 使用 match.fun将字符串转换为函数。点,. , 是可选的。

functions <- c("log", "log10", "sqrt")
10 %>% match.fun(functions[2])(.)
## [1] 1

1a) 这也可以写成:
10 %>% (match.fun(functions[2]))
## [1] 1

1b) 或者
10 %>% (functions[2] %>% match.fun)
## [1] 1

2) do.call do.call也可以:
10 %>% { do.call(functions[2], list(.)) }
## [1] 1

3) 调用/评估 一般 eval不赞成,但它确实形成了另一种选择:
10 %>% call(functions[2], .) %>% eval
## [1] 1

关于r - 从一串函数名中选择一个函数,并通过管道连接到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454173/

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