mcmapply результат в "длинном" или "широком" формате - PullRequest
1 голос
/ 11 июля 2020

Приведенный ниже код генерирует результаты в «широком» формате с именами строк «i_var» и «j_var» соответственно. Вместо этого я хотел бы получить результаты в «длинном» формате с двумя переменными: «i_var» и «j_var» и каждой строкой, соответствующей каждой «итерации».

i_list<-c(1:3) 
j_list<-c(4:6)

aFUN <- function(i,j) {  
        
c("i_var"=i,"j_var"=j)  

}

results<-mcmapply(aFUN,i_list,j_list)

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Решение @akrun в данном случае является каноническим. В качестве альтернативы вы можете транспонировать результат mcmapply:

library(parallel)
results <- mcmapply(FUN = aFUN, i = i_list, j = j_list)
t(results)

#      i_var j_var
# [1,]     1     4
# [2,]     2     5
# [3,]     3     6
0 голосов
/ 11 июля 2020

Для mcmapply первый аргумент должен быть FUN

library(parallel)
do.call(rbind, mcmapply(aFUN, i_list,j_list, SIMPLIFY = FALSE))
#     i_var j_var
#[1,]     1     5
#[2,]     2     6
#[3,]     3     5
...