【发布时间】:2021-04-02 11:04:58
【问题描述】:
我正在构建一个 Shiny 应用程序来为我拥有的系统的输出报告创建可视化。
报告包含我感兴趣的 3 个字段:地址代码、街道代码和城市代码。 这些字段的值是我拥有的数字代码,这些代码的含义对问题并不重要,我只是想创建一个图,我可以在其中查看每个列的每个代码出现了多少次(单独的每个字段的绘图)
例如,DF 看起来像这样
Address Code | Street Code | City Code
100 100 30
100 100 30
0 15 40
50
25 0
可以看到,code的值也可以为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()
})
我在应用程序中不断收到“错误:找不到对象'地址代码'”。所引用的地址代码在 ggplot 行中。
那为什么说它不存在呢?我已经确认 loadData 方法正在正确读取源文件,并且列名确实被读取为地址代码。 [1]:Plot table objects with ggplot?
【问题讨论】:
-
select(-`Address Code`)导致您传递给 ggplot 的数据集中不再有Address Code。删除这一行将消除错误。
标签: r ggplot2 dplyr shiny plotly