R 绘制ggplot中某个值出现在列中的次数
我正在构建一个闪亮的应用程序,为我拥有的系统的输出报告创建可视化效果 该报告包含我感兴趣的3个字段:地址代码、街道代码和城市代码。 这些字段的值是我拥有的数字代码,这些代码的含义对于问题并不重要,我只想创建一个绘图,在这里我可以看到每个列的每个代码出现了多少次(每个字段有一个单独的绘图) 例如,DF看起来像这样R 绘制ggplot中某个值出现在列中的次数,r,ggplot2,dplyr,shiny,plotly,R,Ggplot2,Dplyr,Shiny,Plotly,我正在构建一个闪亮的应用程序,为我拥有的系统的输出报告创建可视化效果 该报告包含我感兴趣的3个字段:地址代码、街道代码和城市代码。 这些字段的值是我拥有的数字代码,这些代码的含义对于问题并不重要,我只想创建一个绘图,在这里我可以看到每个列的每个代码出现了多少次(每个字段有一个单独的绘图) 例如,DF看起来像这样 Address Code | Street Code | City Code 100 100 30 100
Address Code | Street Code | City Code
100 100 30
100 100 30
0 15 40
50
25 0
如您所见,代码的值也可以为null
我期望从中得到的输出类似于水平条形图
Y轴是代码本身,X轴是它们被观察的次数
下面是模拟表,我想要:
ADDRESS CODES
100 --------------
75 -
50 -
25 -
0 -------
0 1 2 3
我在[这里][1]看到了解决这个问题的方法,但我一直在出错
output$plot_levels <- plotly::renderPlotly({
#loadData merely grabs the data and returns it as a data frame.
#loadData uses fread to read the data from a file. It handles the null values as "".
df <- loadData()
df %>%
select(-`Address Code`) %>%
gather() %>%
#filter(`Address Code` != "") %>%
ggplot(aes(`Address Code`, ..count..)) + geom_col()
})
输出$plot\u级别%
聚集()%>%
#筛选器(`AddressCode`!=“”)%>%
ggplot(aes(`Address Code`,…count..))+geom_col()
})
我在应用程序中不断得到“错误:未找到对象‘地址代码’”。此处引用的地址代码是ggplot行中的地址代码
那么为什么它说它不存在呢?我已经确认loadData方法正确读取了源文件,并且列名确实被读取为地址代码。
[1] :试试这个:
library(dplyr)
library(tidyr)
library(ggplot2)
#Code
df %>% pivot_longer(everything()) %>%
filter(!is.na(value)) %>%
group_by(value) %>%
summarise(N=n()) %>%
mutate(value=factor(value,levels = unique(value),ordered = T)) %>%
ggplot(aes(x=value,y=N))+
geom_col(fill='cyan3')+
coord_flip()+
theme_bw()
输出:
或使用绘图
:
library(dplyr)
library(tidyr)
library(ggplot2)
library(plotly)
#Code
ggplotly(df %>% pivot_longer(everything()) %>%
filter(!is.na(value)) %>%
group_by(value) %>%
summarise(N=n()) %>%
mutate(value=factor(value,levels = unique(value),ordered = T)) %>%
ggplot(aes(x=value,y=N))+
geom_col(fill='cyan3')+
coord_flip()+
theme_bw())
输出:
使用的一些数据:
#Data
df <- structure(list(Address.Code = c(100L, 100L, 0L, 50L, 25L), Street.Code = c(100L,
100L, 15L, NA, NA), City.Code = c(30L, 30L, 40L, NA, 0L)), class = "data.frame", row.names = c(NA,
-5L))
#数据
df谢谢,这段代码如何知道选择哪一列?我看不出有指示anywhere@ThePorcius您好,亲爱的,所有列都包含代码,我已经设置了everything()
,如果您需要特定的列,请告诉我,我可以重新配置代码。完整的报告有100多列,因此我只想获取我感兴趣的代码并动态绘制它们。没有必要重写整件事,因为我相信你的方法对于寻找类似东西的人来说会非常有用,这就是Stackoverflow的想法,但对于我的具体情况,我只想知道如何替换,比如,地址的everything()Code@ThePorcius在这种情况下,请在pivotingpivot\u上尝试此修改(地址代码)
使用反勾号,然后仅重新设置该变量的形状。请告诉我这是否有效!选择(-`Address Code`)
会导致传递给ggplot的数据集中不再有地址代码
。删除这一行将消除错误。