Создать сводную таблицу данных в r - PullRequest
0 голосов
/ 16 марта 2019

У меня есть кадр данных в R со следующими образцами данных:

choice  Wealth
1       10
2       5
3       8
3       10
2       10
3       5
1       8
2       5
2       5

Я пытаюсь создать сводную таблицу, в которой показан процент выбора по уровню благосостояния (т. Е. У тех, у кого богатство х, сколько выбрало 1, 2 или 3):

Wealth %choice1 %choice2 %choice3
5      0%       75%      25%
8      50%      0%       50%
10     33%      33%      33%

Я пробовал несколько разных методов, но не могу понять, что это правильно (таблица, dplyr и т. Д.). Поскольку я новичок в R, любые идеи или помощь будут очень благодарны.

Ответы [ 2 ]

2 голосов
/ 16 марта 2019

Вот способ с функцией tabyl из пакета janitor:

library(janitor); library(dplyr)
df %>%
  tabyl(Wealth, choice) %>%
  adorn_percentages("row")

# Wealth         1         2         3
#      5 0.0000000 0.7500000 0.2500000
#      8 0.5000000 0.0000000 0.5000000
#     10 0.3333333 0.3333333 0.3333333
1 голос
/ 16 марта 2019

Проверка с rowSums с table

tb=table(df$Wealth,df$choice)
tb/rowSums(tb)

           1         2         3
5  0.0000000 0.7500000 0.2500000
8  0.5000000 0.0000000 0.5000000
10 0.3333333 0.3333333 0.3333333
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...