Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在ggplot2几何图形栏中重新排序带因数的计数数据_R - Fatal编程技术网

R 在ggplot2几何图形栏中重新排序带因数的计数数据

R 在ggplot2几何图形栏中重新排序带因数的计数数据,r,R,如果使用stat=“identity”读取ggplot2(geom\u bar)的数据帧,我会发现无数按照相应的Y大小对X进行重新排序的示例 我还没有找到stat=“count”的示例。重新排序功能失败,因为我没有相应的y 我有一个带系数的DF列,“count”(参见下面一个糟糕的示例),其中有多个数据实例,正如您所期望的那样。但是,我希望显示系数化数据: ggplot(df, aes(x=df$count)) + geom_bar() 根据每个因子数量定义的顺序,因为未因子(字符)数据不同

如果使用
stat=“identity”
读取
ggplot2(geom\u bar)
的数据帧,我会发现无数按照相应的Y大小对X进行重新排序的示例

我还没有找到
stat=“count”
的示例。重新排序功能失败,因为我没有相应的
y

我有一个带系数的DF列,
“count”
(参见下面一个糟糕的示例),其中有多个数据实例,正如您所期望的那样。但是,我希望显示系数化数据:

ggplot(df, aes(x=df$count)) + geom_bar() 
根据每个因子数量定义的顺序,因为未因子(
字符
)数据不同,即将按字母顺序显示

知道如何重新订购吗

这是我目前的糟糕努力,不幸的是,我昨晚发现了这一点,然后丢失了我的R命令历史记录:

将计数转换为一个系数,然后修改该系数可能有助于完成所需的工作。在下面,我使用
forcats
包中的
fct\u rev
反转计数顺序(属于
tidyverse

或者,如果您希望将条从大到小排列,可以使用
fct\u inferq

iris %>%
  count(Sepal.Length) %>% 
  mutate(n=n %>% as.factor %>% fct_infreq) %>% 
  ggplot(aes(n)) +  geom_bar()

如果以加载tidyverse开始项目,我建议您使用内置的tidyverse函数:
fct\u informeq()

当你的类别是单词时,考虑添加COORDIOFFLIP(),这样你的条可以水平运行。

ggplot(df, aes(x=fct_infreq(df$count))) + geom_bar() + coord_flip()

这是一些鱼种计数的结果:

您能添加一些示例数据和您得到/期望的输出吗?我正在尝试提供一些数据,这些数据是通过远程连接的,因此我无法实际复制和粘贴。因此,我昨晚已经解决了这个问题,但是远程工作在互联网上的延迟导致我的鼠标杀死了我的终端窗口!无论如何,我的数据都是“data.frame”:3007obs。共1个变量:$Disease:Factor w/11级别“丛集性头痛”…“2…….您是否尝试过
fct\u informeq
?如果您已经有了计数,那么
fct\u reorder
可能会有所帮助(即按另一个向量重新排序因子).也许你能找到一个可复制的例子?试一试,我对tidyverse没有太多的经验。非常令人沮丧的是,我用basic base R进行了这项工作,这表明我的数据本身有一些基本的问题。谢谢你的帮助,虽然它显示了一个图,但很遗憾,所有与e相同的值。我将继续讨论,因为我知道这可以使用base R完成-我刚刚丢失了单行命令。没关系。如果您改变主意并有一些示例数据,我很乐意帮助您使用
ggplot
解决方案。
ggplot(df, aes(x=fct_infreq(df$count))) + geom_bar()
ggplot(df, aes(x=fct_infreq(df$count))) + geom_bar() + coord_flip()