提问人: 提问时间:6/30/2023 更新时间:7/1/2023 访问量:29
将具有多个输入参数的函数应用于矢量
Apply function with several input parameters to vector
问:
我编写了一个带有两个输入参数的函数。stats.calc(tr,pr)
如果只有一个输入参数,我可以使用:stats.calc()
trrange <- seq(0.05,0.9,0.01)
df <- sapply(trrange, stats.calc) |> t() |> as.data.frame()
将此函数应用于向量。
是否有可能将此行用于具有两个输入参数的函数?
如果这个问题不清楚,请告诉我!
答:
0赞
Nir Graham
6/30/2023
#1
Sapply 接受 (...) 参数,因此它相对微不足道。例如
add_what <- function(x,what){
x+what
}
sapply(1:3,add_what,what=4)
也许你想问一些更复杂的东西,这取决于第二个参数是以某种方式变化,还是以某种方式来自数据。
0赞
jkt
7/1/2023
#2
我会使用索引:
trrange <- seq(0.05,0.9,0.01)
prrange <- seq(5,90,1)
df <- sapply(1:length(trrange),
function(i) stats.calc(trrange[i], prrange[i]))
这取决于您的问题的性质,例如,长度是否与?如果没有,您可能需要添加重复项,或者如果只是一个值,则根本不需要为其编制索引。在这种情况下,尼尔·格雷厄姆(Nir Graham)的答案将起作用。使用使方法更加通用。prrange
trrange
pr
function(i)
评论
mapply
mapply(stats.calc, trrange, prrange)