【发布时间】:2018-07-16 18:50:22
【问题描述】:
几周前,我在 r 中绘制了一个 ggplot 密度图。 效果很好。然后昨天,我重新访问并运行了相同的代码。 代码主体完全没有变化(仅更改 Rmarkdown 格式,例如更改文本的字体大小、echo = FALSE 等)。我只是重新运行了相同的代码,由于某种原因它不起作用。
这是数据集的代码:
m_hospitals = m_hospitals %>% group_by(Provider.Name) %>% summarise(accSum =
sum(Average.Covered.Charges), atpSum = sum(Average.Total.Payments), ampSum =
sum(Average.Medicare.Payments), accMean = mean(Average.Covered.Charges),
atpMean = mean(Average.Total.Payments), ampMean =
mean(Average.Medicare.Payments))
#Take a sample
set.seed(1219)
sample_m_hospitals = m_hospitals[sample(nrow(m_hospitals), 30), ]
以下是之前有效但不再有效的情节代码:
ggplot(data = sample_m_hospitals) +
aes(x = Provider.Name, y = accMean) +
geom_density(alpha = .75) + theme(axis.text.x = element_text(angle = 45,
hjust = 1))
它给了我这条消息,“数据点少于两个的组已被删除”* 30。 确实,30 行中的每一行只有 1 个观察值,因为它们是汇总的。有趣的是,该消息之前没有弹出,没有丢弃任何数据点并且工作正常。我什至有我为绘制的情节拍摄的屏幕截图。这是链接:1
我感到怀疑的一个变化是更新 R(在重新绘制之前更新,3.5.0 > 3.5.1),它删除了我必须重新安装所有库的所有库。但我不确定更新是否必须解决这个问题。它工作正常,但为什么它突然不起作用?我不明白..请帮忙!我只是想以类似的形式绘制它。
内容根据你们的cmets更新:
【问题讨论】:
-
没有数据我们无法解决问题。提供
dput()的sample_m_hospitals,这样我们就可以看到您正在使用什么。ggplot2最近进行了重大更新,现在可能会引发比以前更多的警告。你用的是什么版本的包?提供devtools::session_info() -
实际上我什至不知道它是如何工作的 -
geom_density应该用于连续 x。 -
@CalumYou 我运行了 dput(sample_m_hospitals) 和 devtools::session_info()。它给了我巨大的结果。我不会复制粘贴,而是上传截图。
-
刚刚上传了截图。我上传了 View(sample_m_hospitals) 而不是 dput(sample_m_hospitals) bc,后者给了我数百行。你们有什么特别的方法可以上传 dput() 的结果之类的东西吗?
-
不太可能有人会从屏幕截图中输入数据。您可以使用
styler清理dput输出并删除换行符以使其适合一行,或者提供仍然重现错误的最少数据(为什么不只包括您正在绘制的两列?)。见how to make a great R reproducible example。这不是浪费时间,因为通常如果您将问题缩小,您可以自己找到问题。例如,这段代码是否仍然只有 5 行?