Есть ли способ увеличить два аргумента в функции 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. В кодах лишние строки не работают, это была просто демонстрация концепции того, что я пытаюсь сделать. Спасибо.
Редактировать
Итак, после изучения функции mapply. Я понял, что хочу создать функцию lapply, которая работает как mapply