gpt4 book ai didi

r - 如何包装一个只接受单个元素的函数以使其接受一个列表

转载 作者:行者123 更新时间:2023-12-04 11:45:32 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Can you pass a vector to a vararg?: Vector to sprintf

(1 个回答)


8年前关闭。




假设我有一个函数交给我,我无法更改并且必须按原样使用。此函数采用以下形式的多个对象

oldFunction( object1, object2, object3, ...)

其中 ... 是其他参数。我想编写一个包装器来获取对象列表。我的想法是这样的。
sjb.ListWrapper <- function(myList,...) {
lLen <- length(myList)
myStr <- ""
for( i in 1:lLen) {
myStr <- paste(myStr, "myList[[", i , "]],",sep="")
}

myCode <- paste("oldFunction(", myStr, "...)")
eval({myCode})
}

但是,问题是我想从 Sweave 使用它,并且我需要打印 oldFunction 的输出。这样做的正确方法是什么?

谢谢。

最佳答案

您正在寻找 do.call :

f <- function(x,y,z)x+y+z
do.call(f,list(1,2,3))
[1] 6

关于r - 如何包装一个只接受单个元素的函数以使其接受一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714159/

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