R 动态生成要调用的函数的名称

R 动态生成要调用的函数的名称,r,function,R,Function,当函数的名称在运行时确定时,是否有方法调用该函数?例如,调用pdf看起来像: pdf("myfile.pdf") 但有没有一种方法,我可以这样做: media_type = "pdf" media_type("myfile.pdf") 1)待办事项呼叫使用待办事项呼叫 do.call(media_type, list("myfile.pdf")) 2)match.fun另一种方法是match.fun fun <- match.fun(media_type) fun("myfile.p

当函数的名称在运行时确定时,是否有方法调用该函数?例如,调用
pdf
看起来像:

pdf("myfile.pdf")
但有没有一种方法,我可以这样做:

media_type = "pdf"
media_type("myfile.pdf")
1)待办事项呼叫使用
待办事项呼叫

do.call(media_type, list("myfile.pdf"))
2)match.fun另一种方法是
match.fun

fun <- match.fun(media_type)
fun("myfile.pdf")
4)eval/call尽管人们通常不赞成使用
eval

eval(call(media_type, "myfile.pdf"))
1)待办事项呼叫使用
待办事项呼叫

do.call(media_type, list("myfile.pdf"))
2)match.fun另一种方法是
match.fun

fun <- match.fun(media_type)
fun("myfile.pdf")
4)eval/call尽管人们通常不赞成使用
eval

eval(call(media_type, "myfile.pdf"))

我不确定这是否是你想要的,但考虑到你问题中的例子,这是可能的。假设您有确定要调用哪个函数的代码,您可以使用
do.call
传入基于字符串的函数名。我必须将输入内容包装在一个列表中,以使其愉快,但大多数情况下这并不是什么大问题

f = "mean"
d = c(1,2,3)
do.call(f,list(d))
#> 2

我不确定这是否是你想要的,但考虑到你问题中的例子,这是可能的。假设您有确定要调用哪个函数的代码,您可以使用
do.call
传入基于字符串的函数名。我必须将输入内容包装在一个列表中,以使其愉快,但大多数情况下这并不是什么大问题

f = "mean"
d = c(1,2,3)
do.call(f,list(d))
#> 2

编写一个R包和库(my_包)。一种方法是使用查找表,将文件类型字符串映射到适当的函数。(或者,一个switch/if-else构造)不确定查找表在R中如何工作;然而,我不理解我刚刚链接的文档。祝你好运编写一个R包和库(my_包)。一种方法是使用查找表,将文件类型字符串映射到适当的函数。(或者,一个switch/if-else构造)不确定查找表在R中如何工作;然而,我不理解我刚刚链接的文档。祝你好运