【问题标题】:Issue with removing missing values in ggplot2删除 ggplot2 中的缺失值的问题
【发布时间】:2018-06-25 15:49:42
【问题描述】:

我正在使用 R 中的 ggplot2 创建一个条形图,并且我想删除我的 x 值中的缺失值,我尝试了几种不同的方法来获取“NA”,但似乎没有任何改变输出.目前我的代码读取(数据不公开,所以我更改了变量名):

ggplot(data = mydata, aes(x= x_mydata, y= y_mydata, na.rm = TRUE)) +
  stat_summary(fun.y = "mean", geom="bar", na.rm = TRUE)

【问题讨论】:

  • 寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。
  • aes 中没有 na.rm 参数,所以它不会做任何事情。您应该在绘图之前从数据中删除 NA 值(或者在将数据传递给 data= 时。
  • 可能相关:在stat_summary 中,您可以通过fun.args 参数将其他参数传递给您正在使用的函数。这看起来像stat_summary 层中的fun.args = list(na.rm = TRUE)

标签: r ggplot2 bar-chart na na.rm


【解决方案1】:

我无法复制。这很好用

mydata <- data.frame(
  x_mydata = c(1, NA, 1, 2, 2, 2, 3, 3, NA),
  y_mydata = c(1,2,NA,4,5, 6,7, NA, NA)
)

ggplot(data = mydata, aes(x= x_mydata, y= y_mydata)) +
  stat_summary(fun.y = "mean", geom="bar", na.rm = TRUE)

请注意,没有na.rm 美学,因此您无需在aes() 中传递它。

【讨论】:

    【解决方案2】:

    我会推荐使用

    data = mydata[!is.na(mydata$x_mydata), ]
    

    如果你使用的是data.table,那就更简单了

    data = mydata[!is.na(x_mydata)]
    

    【讨论】:

      【解决方案3】:

      我不确切知道您想要什么,但是将您的数据名称包装在 na.omit 中应该可以。所以像 ggplot(data = na.omit(df), aes = ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-20
        • 2013-08-16
        • 1970-01-01
        • 2021-06-25
        • 2020-10-01
        • 1970-01-01
        • 2023-03-13
        • 2021-02-23
        相关资源
        最近更新 更多