R “应用结果”;“长”;或;“宽”;格式

R “应用结果”;“长”;或;“宽”;格式,r,parallel-processing,lapply,R,Parallel Processing,Lapply,下面的代码以“宽”格式生成结果,行名分别为“i_var”和“j_var”。相反,我希望结果是“长”格式的,有两个变量:“I_var”和“j_var”,每一行对应于每个“迭代” i_list对于mcmapply,第一个参数应该是FUN library(parallel) do.call(rbind, mcmapply(aFUN, i_list,j_list, SIMPLIFY = FALSE)) # i_var j_var #[1,] 1 5 #[2,] 2

下面的代码以“宽”格式生成结果,行名分别为“i_var”和“j_var”。相反,我希望结果是“长”格式的,有两个变量:“I_var”和“j_var”,每一行对应于每个“迭代”


i_list对于
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

对于
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

在本例中,@akrun的解决方案是规范的解决方案。另一种方法是,您可以转置MCMAPLY的结果:

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
库(并行)

结果@akrun的溶液是本例的标准溶液。另一种方法是,您可以转置MCMAPLY的结果:

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
库(并行)

结果谢谢,但这似乎不行。它给了我1列6行。我想要2列(每个变量名)和3行。@Raimundo在
r4.0
中,我得到了更新后的回答中的两列,我在3.6.1版上。是这样吗?@Raimundo可能是这样的,而且函数中的参数似乎与
mcmapply
文档中显示的顺序不符。我检查了参数的顺序,但似乎不是这样。谢谢,但这似乎不行。它给了我1列6行。我想要2列(每个变量名)和3行。@Raimundo在
r4.0
中,我得到了更新后的回答中的两列,我在3.6.1版上。是这样吗?@Raimundo可能是这样的,而且函数中的参数似乎不符合
mcmapply
文档中显示的顺序。我检查了参数的顺序,但似乎不是这样。如果i_list和j_list很大,这个解决方案有什么缺点吗?在处理大向量时,它与下一个最佳解决方案一样具有时间效率,前提是
结果
在被转置之前不会变成
数据。帧
。如果i_列表和j_列表很大,这个解决方案有什么缺点吗?在处理大向量时,它与下一个最佳解决方案一样具有时间效率,前提是
结果
在转置之前不会变成
数据帧。