有没有一种方法可以在 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
输出结果将为
list(list(1,1),list(2,4),list(3,32),list(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
输出结果将是
list(list(1,1,2), list(2,4,2), list(3,32,6), list(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函数。
data
是什么类型的对象? - SotosMap
,Map(c, seq_along(data), data, data2)
。 - Ronak Shahlist(1, 2, 3)
= 列表...c(1, 2, 3)
= 向量... - Sotos