我正在尝试从 ade4 包中执行函数 varipart()。我正在尝试在同一函数的不同部分中的每个列表中使用相同的数字数据框。我需要为每组数据框传递这个。
########### DATA BELOW
d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6))
d2 <- data.frame(y1 = c(3, 2, 1), y2 = c(6, 5, 4))
d3 <- data.frame(y1 = c(2, 1, 2), y2 = c(5, 6, 4))
spec.list <- list(d1, d2, d3)
d1 <- data.frame(y1 = c(20, 87, 39), y2 = c(46, 51, 8))
d2 <- data.frame(y1 = c(30, 21, 12), y2 = c(61, 51, 33))
d3 <- data.frame(y1 = c(2, 11, 14), y2 = c(52, 16, 1))
env.list <- list(d1, d2, d3)
d1 <- data.frame(y1 = c(0.15, 0.1, 0.9), y2 = c(0.46, 0.51, 0.82))
d2 <- data.frame(y1 = c(0.13, 0.31, 0.9), y2 = c(0.11, 0.51, 0.38))
d3 <- data.frame(y1 = c(0.52, 0.11, 0.14), y2 = c(0.52, 0.36, 0.11))
spat.list <- list(d1, d2, d3)
###############
# I have tried two ways
library(parallel)
library(ade4)
output_varpart <- mclapply(spec.list, function(x){
varipart(x, env.list, spat.list, type = "parametric")
})
output_varpart <- mclapply(x, function(x){
varipart(spec.list[[x]], env.list[[x]], spat.list[[x]], type = "parametric")
})
for(i in 1:length(x)){
results <- varipart(spec.list, env.list, spat.list, type = "parametric")
}
这些方法都不起作用!请温柔,我是列表语法和循环的新手。错误分别是“警告消息:在 mclapply(output.spectrans.dudi, function(x) { :所有计划的核心在用户代码中遇到错误”和“x * w 中的错误:二进制运算符的非数字参数”。