#r #datatable #row #tidyverse #tidy
#r #datatable #строка #tidyverse #аккуратный
Вопрос:
Я пытаюсь создать таблицу данных, которая сортирует каждую из переменных строк на 2 разные подгруппы. Вот воспроизводимый пример, который, надеюсь, прояснит, что я хотел бы сделать.
table <- mtcars %>%
group_by(vs) %>%
summarise(MPG=mean(mpg),DRAT=mean(drat))
table=t(table)
table
[,1] [,2]
vs 0.000000 1.000000
MPG 16.616667 24.557143
DRAT 3.392222 3.859286
#here is what I would like the output to look like, but am unsure how to do create it (some of these numbers I just made up)
**[,1] [,2]
vs 0.000000 1.000000
MPG (overall) 16.616667 24.557143**
MPG (am=1) 14 13
MPG (am=0) 11 12
**DRAT (overall) 3.392222 3.859286**
DRAT (am=1) 3.1 3.6
DRAT (am=0) 4 4
Итак, имея в виду эту таблицу, я хочу изменить ее таким образом, чтобы для переменных MPG и DRAT было две подкатегории, основанные на том, находятся ли автомобили в группе 0 или 1 для переменной am в наборе данных. Мне сложно указать R, чтобы у R были группы столбцов для переменной vs, а также отдельно анализировать группы am (0 или 1) для каждой строки и отображать это в таблице. Спасибо!
Ответ №1:
Вы могли бы использовать tables
пакет :
tabular((mpg drat)*(am=factor(am) 1)~(vs=factor(vs)*(mean)), data=mtcars)
vs
0 1
am mean mean
mpg 0 15.050 20.743
1 19.750 28.371
All 16.617 24.557
drat 0 3.121 3.570
1 3.935 4.149
All 3.392 3.859
Комментарии:
1. Неплохо. Переменная для строк, вероятно, должна быть
am
. Пример выходной таблицы вводит в заблуждение. (;2. Отлично! Большое спасибо.
3. @stefan только что увидел эту ошибку, мой плохой! Как я мог бы настроить это так, чтобы переменная для строк была am, а не vs?
4. Просто замените первую
vs
часть наam
. табличный ((mpg drat)*(am= factor(am) 1) ~(vs= factor(vs)*(среднее значение)), данные = mtcars)5. спасибо @tamtam за исправление, я отредактировал ответ