gpt4 book ai didi

r - 在 lapply 中增加多个参数

转载 作者:行者123 更新时间:2023-12-04 15:38:58 26 4
gpt4 key购买 nike

有没有办法在 lapply 函数中递增两个参数?例如

test <- function(pos,value){
list[pos,value]
}

data=c(1,4,32,54) #not global
lapply(X=1:length(data),test, value=data[X])#this is the idea but the code doesnt work

输出将是列表(列表(1,1),列表(2,4),列表(3,32),列表(4,54))

另一个例子是

test <- function(pos,value,value2){
list(pos,value,value2)
}

data=c(1,4,32,54) #not global
data2=c(2,6,3,21) #not global
lapply(X=1:length(data),test, value=data[X], value2=data2[X]) #this is the idea but the code doesn't work

输出将是列表(列表(1,1,2),列表(2,4,2),列表(3,32,6),列表(4,54,21))

这也可能有所帮助。我非常想将 for 循环更改为 lapply。

test <- function(pos,value,value2){
list(pos,value,value2)
}

data=c(1,4,32,54) #not global
data2=c(2,6,3,21) #not global
for(i:length(data)){
result=list(result,test(i,data[i],data2[i]))
}

由于变量不是全局的,所以我不能将测试函数设为

test <- function(pos){
list(pos,data[pos],data2[pos])
}

我知道有一种更简单的方法可以编写这段代码来完成同样的事情。但是我正在寻找一种方法来专门增加两个变量,或者在参数中使用增加的值。示例中使用的变量不是全局变量,所以我不能在函数中使用它们,它需要使用 lapply 函数。在代码中,lapply 行不起作用,它只是展示了我正在尝试做的事情的概念。谢谢。

编辑

所以在了解了mapply函数之后。我意识到我想要的是创建一个像 mapply 一样的 lapply 函数

最佳答案

我猜 mapply 是比 lapply 更好的选择。

假设您有可变数量的输入参数,您可以将 test 重写为

test <- function(pos,...){
list(pos, ...)
}

在你的例子中输入

data=c(1,4,32,54) #not global
data2=c(2,6,3,21) #not global

使用 mapply 可以让你到达那里:

mapply(test, seq_along(data), data, data2, SIMPLIFY = F)

关于r - 在 lapply 中增加多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58691892/

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