pivot_wider () не сворачивает переменные в одну строку - PullRequest
0 голосов
/ 26 марта 2020

Мой набор данных похож на это

Organism    Reads    Name
Name1       10       MF60
Name2       100      MF60
Name1       50       MF60
Name2       75       AFM10
Name3       200      AFM10

Когда я использую pivot_wider (),

df_wide <- df %>%
    pivot_wider(names_from = Organism, values_from = Reads)

Я получаю вывод, который выглядит следующим образом

Name   Name1  Name2  Name3
MF60    10     NA     NA
MF60    NA     100    NA
MF60    NA     NA     50
AMF10   75     NA     NA
AMF10   NA     200    NA
etc..

Почему не сворачивает ли все MF60 в один ряд? Я попытался изменить значения names_from и values_from, но это не сработало. Спасибо за понимание!

1 Ответ

0 голосов
/ 26 марта 2020

Проблема связана с дополнительным столбцом Percentage в вашем фактическом наборе данных, которого нет в приведенном выше примере. Так как в вашем наборе данных есть дополнительный столбец, который не указан в функции pivot_wider, каждая строка обрабатывается уникально и, следовательно, неверная квадратная матрица.

Если исключить дополнительный столбец (в процентах) и выбрать только нужные столбцы (Organisam, Reads и Name), pivot_wider будет работать так, как нужно.

df-structure(list(Organism = c("Unclassified", "Peptoniphilus methioninivorax", "Myroides odoratimimus", "Enterococcus sulfureus", "Peptoniphilus olsenii", "Dysgonomonas wimpennyi"), Reads = c(95345, 78055, 63769, 14849, 14229, 13245), Percentage = c(28.95375, 23.70324, 19.36496, 4.509248, 4.320971, 4.022156), Name = c("Marg F6O", "Marg F6O", "Marg F6O", "Marg F6O", "Marg F6O", "Marg F6O")), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"))

library(tidyr)
df %>%  pivot_wider(names_from = Organism, values_from = Reads)
## Does not provide the desired Results!

Рабочая версия:

library(dplyr)
df %>% select(-Percentage) %>%  pivot_wider(names_from = Organism, values_from = Reads)

# # A tibble: 1 x 7
# Name   Unclassified `Peptoniphilus met~ `Myroides odorat~ `Enterococcus su~ `Peptoniphilus o~ `Dysgonomonas wi~
#   <chr>         <dbl>               <dbl>             <dbl>             <dbl>             <dbl>             <dbl>
#   1 Marg ~        95345               78055             63769             14849             14229         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...