Group_by (dplyr) с одним фактором в качестве столбца - PullRequest
0 голосов
/ 24 января 2019

В следующем наборе фиктивных данных я хотел бы создать сводную таблицу, группирующуюся по трем переменным. До сих пор я использовал dplyr. Тем не менее, я хотел бы иметь значения r в качестве имен столбцов, а значения x1 и x2 в качестве имен строк, с соответствующими ячейками, заполненными значениями из m. Какое может быть решение?

r <- rep(seq(1,10,1),10)
x1 <- rbinom(100, 1, 0.5)
x2 <- rbinom(100, 2, 0.5)
y <- rnorm(100, 10, 5)

df <- data.frame(r,x1,x2,y)

library(dplyr)

View(df %>% 
  group_by(x1,x2,r) %>% 
  summarise(m = mean(y))
)

1 Ответ

0 голосов
/ 24 января 2019

Чтобы достичь желаемого результата, вам в основном нужно преобразовать из длинного в широкое значение, используя x1 и x2 в качестве переменных группировки.Функция spread () выполнит свою работу:

library(dplyr)
library(tidyr)

df %>% 
  group_by(x1,x2,r) %>% 
  summarise(m = mean(y)) %>% 
  ungroup %>% 
  spread(key = r, value = m,-x1, -x2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...