Средневзвешенная ошибка при объединении нескольких перечисленных фреймов данных в одну функцию - PullRequest
0 голосов
/ 13 декабря 2018

Я вчера разместил вопрос по ссылке ниже, на которую Эмиль Боде получил отличный ответ! Зацикливание нескольких перечисленных фреймов данных в одну функцию

Однако я забыл преобразовать один из примеров списков, что вызвало ошибку при попытке запустить его на преобразованных данных.

    #######################################
          library(parallel)
          library(ade4)
        # testing functions ... 
        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,7,8,1,1), y2 = c(46, 51, 8,20, 87, 39,0))
        d2 <- data.frame(y1 = c(30, 21, 12,1,0,0,2), y2 = c(61, 51, 33,30, 21, 12,21))
        d3 <- data.frame(y1 = c(2, 11, 14,10,2,3,5), y2 = c(52, 16, 1,2, 11, 14,66))
        env.list <- list(d1, d2, d3)

        d1 <- data.frame(y1 = c(0.15, 0.1, 0.9,30, 21), y2 = c(0.46, 0.51, 0.82,30,1))
        d2 <- data.frame(y1 = c(0.13, 0.31, 0.9,2, 11), y2 = c(0.11, 0.51, 0.38,1,0.1))
        d3 <- data.frame(y1 = c(0.52, 0.11, 0.14,1,5), y2 = c(0.52, 0.36, 0.11,0.7,2))
        spat.list <- list(d1, d2, d3)


        spec.dudi <- mclapply(spec.list, function(x){
          dudi.pca(x, scale = F, scannf = F)
        }) # had to transform these data, like this. 

        output_varpart <- mclapply(1:3, function(x){
          varipart(spec.dudi[[x]], env.list[[x]], spat.list[[x]], type = "parametric")
        }) # the [mc]lapply function results in failure ( Error in weighted.mean.default(newX[, i], ...) : 
  'x' and 'w' must have the same length). 

    # I also checked and the lengths are all the same!! 
    > length(spec.dudi)
    [1] 3
    > length(env.list)
    [1] 3
    > length(spat.list)
    [1] 3

Это работает на отдельных фреймах данных, поэтому я не уверен, почему это происходит!Это как-то связано с тем, что это список?В любом случае, как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...