R如何根据频率组合数据帧因子

问题描述 投票:1回答:1

我是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

我想要从左到右去:跑步,散步,飞行。

有一种简单的方法可以做到这一点,还是需要重构整个数据帧?

r plot
1个回答
1
投票

我们可以用指定的factor转换为levels

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

然后做barplot

barplot(table(movement))

data

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"))
© www.soinside.com 2019 - 2024. All rights reserved.