【问题标题】:Groups with fewer than two data points have been dropped. ggplot r已删除少于两个数据点的组。 ggplot r
【发布时间】: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更新:

devtools::session_info() 的屏幕截图 2 , 3

sample_m_hospitals 的屏幕截图 4 , 5

【问题讨论】:

  • 没有数据我们无法解决问题。提供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 行?

标签: r ggplot2


【解决方案1】:

我有一个类似的问题,通过转换列解决了。数值列正在作为字符串导入。

【讨论】:

    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 2016-05-18
    • 2016-05-22
    • 2022-06-10
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多