Я новичок в R, и почему-то кажется, что решить эту проблему несложно. Но, к сожалению, мне не удалось этого сделать после трех дней поиска и экспериментов.
Мои данные находятся в форме, близкой к широкой:
color agegroup sex ses
red 2 Female A
blue 2 Female C
green 5 Male D
red 3 Female A
red 2 Male B
blue 1 Female B
...
Я пытаюсь создать презентабельные таблицы со счетчиками и процентами зависимой переменной (здесь color
), организованными по sex
, ses
и agegroup
. Мне нужна одна таблица, организованная по ses
и sex
для каждого agegroup
, со счетчиками рядом с процентами, например:
agegroup: 1
sex: Female Male
ses: A B C D A B C D
color:
red 2 1% 0 0% 8 4% 22 11% 16 8% 2 1% 8 4% 3 1.5%
blue 9 4.5% 6 3% 4 2% 2 1% 12 6% 32 16% 14 7% 6 3%
green 4 2% 12 6% 2 1% 8 4% 0 0% 22 11% 40 20% 0 0%
agegroup: 2
sex: Female Male
ses: A B C D A B C D
color:
red 2 1% 0 0% 8 4% 22 11% 16 8% 2 1% 8 4% 3 1.5%
blue 9 4.5% 6 3% 4 2% 2 1% 12 6% 32 16% 14 7% 6 3%
green 4 2% 12 6% 2 1% 8 4% 0 0% 22 11% 40 20% 0 0%
Я пытался сделать это со всем, от datatables
и expss
до gmodels
, но я просто не могу понять, как получить такой вывод. CrossTables
из gmodels
подходит ближе всего, но все еще довольно далеко - (1) процентные значения под счетами, (2) Я не могу поместить его sel
в sex
, (3) Я могу Я не понимаю, как заставить его разделять результаты по генерации, и (4) результат полон черточек, вертикальных черт и пробелов, что делает его перенос в текстовый процессор или электронную таблицу вручную с высокой вероятностью ошибок.
РЕДАКТИРОВАТЬ: я удалил свой второй вопрос (о линейных графиках), потому что ответ на первый вопрос идеален и заслуживает уважения, даже если он не касается второго. Второй вопрос я задам отдельно, как и следовало бы с самого начала.
janitor::tabyl
, возможно, стоит взглянуть. - person Jon Spring   schedule 15.09.2018class
показывает, что объект, над которым я работаю, является фреймом данных): Ошибка в классе (dat [[1]]) ‹- new_class: добавление фактора класса к недопустимому объекту Дополнительно: Предупреждающие сообщения: 1: В if (col1_class% в% factor) {: условие имеет длину ›1, и будет использоваться только первый элемент 2: В if (new_class% в % factor) {: длина условия ›1 и будет использоваться только первый элемент - person Gil Williams   schedule 15.09.2018tabyl
, похоже, ограничен трехсторонним. По моему примеру, не получается создать презентабельную таблицу. - person Gil Williams   schedule 15.09.2018