删除NA(也ggplot图)
问题描述:
我的数据看起来像删除NA(也ggplot图)
Year ... Growth_Rate
2011 NA
2012 2.0
2013 ... 3.2
2014 -2.0
2015 1.3
2016 ... 1.9
ggplot(ridership, aes(Year, Bronx$Growth_Rate, group=1, na.rm=TRUE))+
geom_bar(stat= "identity", aes(fill=Year)) +
scale_y_continuous("Ridership Growth Rate",
labels = percent_format())+ geom_point(col='black', size=0.7) +
geom_line(col='black', size=0.3) +
ggtitle("Ridership Change in Bronx") +
theme(plot.title = element_text(hjust = 0.5))
这是曲线图。我想2011年度去除
答
如何将下面的代码。
方法1
在这里,我已经通过去除它们并在一个单独的数据帧存储所述清洁数据预处理缺少的值。当然,你可以将它保存在同一个数据帧像,dat<- na.omit(subset(dat, select = c(Year, Growth_Rate)))
`
# create some dummy data
Year<- c(2011:2016)
Growth_Rate<- c(NA,2.0,3.2,-2.0,1.3,1.9)
dat<- data.frame(Year, Growth_Rate, stringsAsFactors = FALSE)
# remove missing values
dat.clean<- na.omit(subset(dat, select = c(Year, Growth_Rate)))
# plot it
ggplot(data = dat, aes(Year,Growth_Rate))+
geom_bar(stat = "identity", na.rm = TRUE)+
geom_line(col='black', size=0.3)+
ggtitle("Ridership Change in Bronx") +
theme(plot.title = element_text(hjust = 0.5))
在我的角度来看,方法1是容易的,如预期,但增加了一个临时变量来保存清理数据的开销工作。
方法2
通过使用coord_cartesian()
。在我看来,对于这种方法最好的用例是在你希望限制x轴值的时候。
library(ggplot2)
# create some dummy data
Year<- c(2011:2016)
Growth_Rate<- c(NA,2.0,3.2,-2.0,1.3,1.9)
dat<- data.frame(Year, Growth_Rate, stringsAsFactors = FALSE)
# plot it
ggplot(data = dat, aes(Year,Growth_Rate))+
geom_bar(stat = "identity", na.rm = TRUE)+
geom_line(col='black', size=0.3)+
coord_cartesian(xlim = c(2012, 2016))+
ggtitle("Ridership Change in Bronx") +
theme(plot.title = element_text(hjust = 0.5))
与方法2的问题,是当被执行时,会产生像警告消息,Warning messages: 1: Removed 1 rows containing missing values (position_stack). 2: Removed 1 rows containing missing values (geom_path).
方法3
我与Method 1
怨恨,它被创建额外的临时变量存储清理的数据。所以我提出方法3;
ggplot(data = na.omit(subset(dat, select = c(Year, Growth_Rate))),
aes(Year,Growth_Rate))+
geom_bar(stat = "identity", na.rm = TRUE)+
geom_line(col='black', size=0.3)+
ggtitle("Ridership Change in Bronx") +
theme(plot.title = element_text(hjust = 0.5))
我认为,Method 3
解决了这两个my grudge
还有OP question
。
你可以筛选数据,例如:ggplot(dplyr ::滤波器(载客量,年= “2011年度” is.na(年)),AES(年! ,... –