Я попытался воспроизвести этот подход, чтобы найти средства для разных групп в моем наборе данных: Означает несколько столбцов несколькими группами и следующий код:
newtest %>%
group_by(aligntool, paired) %>%
summarise(vars("read_per_length"), mean)
Однако я получаю следующее сообщение об ошибке:
In format.data.frame(x, digits = digits, na.encode = FALSE) : corrupt data frame: columns will be truncated or padded with NAs
Я проверил, была ли это проблема с нулевыми значениями, поэтому удалил их и получил ту же проблему. Я также уменьшил размер набора данных, чтобы проверить, не связана ли это с памятью. Для справки, мой фрейм данных выглядит так:
str(newtest)
'data.frame': 100 obs. of 4 variables:
$ Run_Sample : Factor w/ 6 levels "Run_1768_Sample_77304",..: 5 6 3 3 4 6 2 1 6 6 ...
$ paired : Factor w/ 2 levels "N","Y": 2 2 1 1 1 1 1 2 2 1 ...
$ aligntool : Factor w/ 2 levels "bbmap","kallisto": 2 1 1 2 1 1 2 2 1 1 ...
$ read_per_length: num 2.60e-10 1.87e-09 3.28e-09 7.63e-10 1.38e-09 ...
Есть ли проблема в том, как как-то отформатирован мой фрейм данных? Как мне решить эту проблему?
@OTStats - Я подозреваю, что другие тоже могут совершить ту же ошибку, и ответ на нее будет полезен здесь. Возможно, подумайте о том, чтобы превратить свой комментарий в ответ?
@dww Я не уверен, что это работает, надеюсь попробую.
Другая моя проблема заключалась в том, как я устанавливал пакеты. Я индивидуально установил dplyr / tidyr вместо install.packages ("tidyverse"). Это решило некоторые проблемы с зависимостями.
Это должно работать:
newtest %>%
group_by(aligntool, paired) %>%
summarise_at(vars("read_per_length"), mean)
Используйте
summarize_at()
вместоsummarize()
.