我想做这个问题的反面,和这个问题的反面,虽然那是关于传说,而不是情节本身。
其他 SO 问题似乎是在询问如何保持未使用的因子水平。我实际上希望我的删除。我有几个名称变量和几个变量属性列(宽格式),用于创建大量条形图。这是一个可重现的示例:
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
我明白了:
我只想在我的条形图中显示具有相应 var n的名称(例如,B 没有空白区域)。
y=var
如果我可以简单地更改输出文件名和位,重用基本绘图代码将非常容易。如果可能的话,我不想仅仅为了在每个图的结果上使用 droplevels 而对我的数据框进行子集化!
根据na.omit()
建议更新
考虑一个修改后的数据集:
library(ggplot2)
df <- data.frame(name=c("A","B","C"), var1=c(1,NA,2),var2=c(3,4,5), var3=c(NA,6,7))
ggplot(df, aes(x=name,y=var1)) + geom_bar()
我需要na.omit()
用于绘图var1
,因为存在 NA。但是由于 na.omit 确保所有列都存在值,因此该图也会删除A
,因为它在 NA 中有一个 NA var3
。这更类似于我的数据。我总共有 15 条回复,其中充斥着 NA。我只想删除当前绘制的 y 向量没有值的因子水平,而不是在整个数据帧中的任何向量中具有 NA 的因子水平。