我在Windows 10下使用 system2 功能与并行库调用外部批处理时遇到问题,我的函数执行外部程序来读取二进制文件(必须是与示例相同的文件夹中的内容)。问题是myfunction在调用简单函数时返回正确的行数(35行),但在并行化时返回少4行(31行)。 Here you can find an example with all files (https://www.dropbox.com/sh/kdoqdv5uh1rhr98/AAB86TpgVjVlFQRsTOvmZoipa?dl=0) 我的功能如下:
a
file_to_read<-"crop@seasonal$d.UED"
library(parallel)
cl <- makeCluster(2)
clusterEvalQ(cl, library(base))
seq_along_path_index<-seq_along(all_cells$V1)
list_results<-parLapply(cl,file_to_read,
myfunction)) #return 31
stopCluster(cl)
#simple call
list_results2<-myfunction(file_to_read) #return 35
由于
答案 0 :(得分:0)
这可能来自数据框也是列表的事实。
例如,当您使用unlist(list(iris, iris))
时,您将获得大小为1500的数字向量。
相反,如果您想要包含所有数据框列的列表,请尝试将unlist
与recursive = FALSE
一起使用,或者如果您希望附加数据框,请使用do.call("rbind", list(iris, iris))
代替unlist(list(iris, iris))
按行。