Лучшие практики транспонирования части фрейма данных в R - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь найти способ транспонировать только 1 столбец в моем фрейме данных R.

Это оригинальный фрейм данных:

Fruits  Name  Count
Apple   Tom   2
Apple   Bob   2
Banana  Tom   1

Это то, что я хочу, чтобы мои данныекадр должен быть:

Name  Apple Banana
Tom   2     1
Bob   2     0

Пожалуйста, совет и спасибо заранее!

Ответы [ 2 ]

3 голосов
/ 16 мая 2019
library(dplyr)
library(tidyr)
df <- data.frame(Fruits = c("Apple", "Apple", "Banana"),
                 Name = c("Tom", "Bob", "Tom"),
                 Count = c(2,2,1))
df
> df
  Fruits Name Count
1  Apple  Tom     2
2  Apple  Bob     2
3 Banana  Tom     1
df2 <- df %>% 
  tidyr::spread(key = Fruits, value = Count) %>% 
  replace(is.na(.), 0) %>% 
  dplyr::arrange(desc(Name))
df2
> df2
  Name Apple Banana
1  Tom     2      1
2  Bob     2      0
2 голосов
/ 16 мая 2019

Использование данных @bbiasi:

tidyr::spread(df2, Fruits, Count, fill = 0)

#  Name Apple Banana
#1  Bob     2      0
#2  Tom     2      1

upd: не видел комментарий @Jilber Urbina до того, как я опубликовал это

...