R Как объединить факторы кадров данных по их частоте - PullRequest
0 голосов
/ 08 сентября 2018

Я довольно новичок в R, но долгое время пользовался Python. Я везде смотрел в Интернете и боролся с чем-то, что какое-то время кажется таким простым.

Итак, у меня есть R-фрейм данных, который называется «движение» в форме:

  person  activity
1    1    running
2    2    running
3    3    walking
4    4    flying
5    5    walking
6    6    running

Примечание: категория "Человек" не означает "6 человек бежит", но "человек # 6 бежит"

Мне нужно это как нисходящая гистограмма, и я хочу использовать основную графику R. Итак, используя функцию bargraph (), с людьми в качестве «высоты» или частоты. Проблема в том, что пока он будет рассматривать действия как отдельные и выкладывать график из 6 столбцов с каждым видом деятельности, перечисленным отдельно.

До сих пор я пытался использовать функции, такие как rev (), sort (), order (), чтобы сгруппировать действия вместе и спустить данные. Я пытался преобразовать фрейм данных в матрицу или использовать столбцы по отдельности в качестве векторов, чтобы удовлетворить требования barplot () к матрице / вектору, но barplot (движение $ person) просто делает то, что указано выше.

Мне больше всего повезло, что я преобразовал фрейм данных в таблицу и использовал его так:

bargraph(table(movement))

Однако, это не дает мне данные в нисходящем виде, и я не мог понять, как сделать таблицу по убыванию. Я получаю график, как это:

PLOT

Я бы хотел, чтобы это было слева направо: бегать, ходить, летать.

Есть ли простой способ сделать это, или мне нужно реструктурировать весь фрейм данных?

1 Ответ

0 голосов
/ 08 сентября 2018

Мы можем преобразовать в factor с levels указанным

movement$activity <- factor(movement$activity, levels = unique(movement$activity))

, а затем сделать barplot

barplot(table(movement))

Данные

movement <- structure(list(person = 1:6, activity = c("running", "running", 
"walking", "flying", "walking", "running")), class = "data.frame", 
row.names = c("1", "2", "3", "4", "5", "6"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...