R如何结合数据帧因子的频率

时间:2018-09-08 19:30:21

标签: r plot

我对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(movement $ person)确实如上所述。

到目前为止,我最幸运的是将数据框转换为表,并像这样使用它:

bargraph(table(movement))

但是,这不能为我提供降序形式的数据,而且我也无法弄清楚如何使表降序。我得到这样的图:

PLOT

我希望它从左到右运行:跑步,步行,飞行。

是否有一种简单的方法来执行此操作,或者我是否需要重组整个数据框?

1 个答案:

答案 0 :(得分:1)

我们可以在指定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"))