【问题标题】:How to remove NA from a factor variable (and from a ggplot chart)?如何从因子变量(和 ggplot 图表)中删除 NA?
【发布时间】:2013-07-02 00:34:18
【问题描述】:

我对因子变量中的 NA 有疑问,因为 ggplot 将它们包含在图中,就好像它们是另一个类别/级别一样。我想删除丢失的数据。 很抱歉,我目前手头没有代码,我试图从我在 data() 找到的数据集中删除因子级别,但没有成功。

有人遇到同样的问题吗?

我尝试了Remove unused factor levels from a ggplot bar plot 此处建议的解决方案,但出现错误

错误:mycode 中出现意外符号

有人可以建议吗?

另外,如果无法从 ggplot 代码中删除它们,我如何从因子变量中删除 NA?

【问题讨论】:

    标签: r ggplot2 missing-data


    【解决方案1】:

    假设您的数据位于名为 dat 的数据框中

    newdat <- dat[!is.na(dat$Factor), ]

    不知道如何解决 ggplot 代码内部的问题

    【讨论】:

    • 谢谢@Frank,它确实有效,一个问题:它是否删除了数据集中该因子变量中具有 NA 的案例?
    • 命令是说每次is.na(dat$Factor)TRUE时删除整行
    • @baptiste 我更改了代码以反映您的评论。我不知道它是这样工作的。感谢您的评论。
    • @Frank,对不起,我没完全理解,每次is.na(dat$Factor)TRUE 时它都会删除整行,你的意思是我需要调用这个iside ggplot 函数,或任何其他函数?
    • 您可以这样做,也可以创建一个新对象(例如newdat)来包含原始数据的子集。然后,在 ggplot 函数中使用新对象。
    【解决方案2】:

    我会以这种方式使用qplot 而不是ggplot

    qplot(x=column, data=subset(dataframe,!is.na(column)))
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      此相关主题的答案: NA's are being plotted in boxplot ggplot2

      简而言之,而不是通常的:

      ggplot(data=data)
      

      使用

      ggplot(data=na.omit(data[,c("var1","var2",...)])) 
      

      其中 var1、var2 等是您正在绘制的变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-21
        • 2013-06-17
        • 2012-07-09
        相关资源
        最近更新 更多