Как создать матрицу из нескольких t.test в r - PullRequest
0 голосов
/ 04 марта 2020

Итак, у меня есть фрейм данных, который я должен выполнить t.test, и в конце концов у меня есть матрица со следующими столбцами: "Lower CI-limit", "Mean", "Upper CI-limit", "no из ". он должен выглядеть как-то так когда это будет сделано, код, который я до сих пор пробовал, выглядит так:

my_grouped_test <- function(data_vector, my_groups, alpha){



  fct <- as.factor(my_groups)
  lvl <- levels(fct)
  tbl <- table(my_groups)

  result <- matrix(0, nrow = length(unique(fct)), ncol = 4)
  colnames(result) <- c("Lower CI-limit", "Mean", "Upper CI-limit", "no of obs.")
  rownames(result) <- c(0:(length(lvl)-1))
  result[,4] <- tbl
  group_test <- by(data_vector, INDICES = fct, FUN = t.test, conf.level=(1-alpha))

  for(i in 1:length(lvl)){
  result[(i),c(1,3)] <- group_test$'i'$conf.int
  result[(i),2] <- group_test$'i'$estimate

  }
  return(result)
}

Но результат, который я получаю, - это в первую очередь "количество элементов заменить не кратно длины замены ". Я также обязан обрабатывать данные, как показано выше, как это

group_test <- by(data_vector, INDICES = fct, FUN = t.test, conf.level=(1-alpha))

1 Ответ

0 голосов
/ 04 марта 2020
my_grouped_test <- function(data_vector, my_groups, alpha){



    fct <- as.factor(my_groups)
    lvl <- levels(fct)
    tbl <- table(my_groups)

    result <- matrix(0, nrow = length(unique(fct)), ncol = 4)
    colnames(result) <- c("Lower CI-limit", "Mean", "Upper CI-limit", "no of obs.")
    rownames(result) <- c(0:(length(lvl)-1))
    result[,4] <- tbl
    group_test <- by(data_vector, INDICES = fct, FUN = t.test, conf.level=(1-alpha))

    for(i in 1:length(lvl)){
        result[(i),c(1,3)] <- group_test[[i]]$conf.int
        result[(i),2] <- group_test[[i]]$estimate

    }
    return(result)
}

group_test - список. Для доступа к элементам списка вы должны использовать [[i]]. Чтобы увидеть объект, который вы можете использовать str (group_test), вы увидите, что это список.

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