2017-08-12 1 views
0

私のデータははR.で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)) 

これはグラフであるように見えるを削除します。私は、次のコードについてY2011


enter image description here

+1

あなたはあなたのデータをフィルタリングすることができ例:!!ggplot(dplyr ::フィルタ(乗客、年= "Y2011"、is.na(年))、AES(年、... –

答えて

1

方法を削除したいと思います。ここで

方法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が簡単で、意図したとおりに動作しますが、きれいにデータを保持するための一時的な変数のオーバーヘッドが追加されます。

coord_cartesian()を用いる方法2

。私の意見では、このメソッドの最適な使用例は、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 3my grudgeなどOP questionの両方を解決し、だと思います。

0

@Ashish答えはプロットしたくない場合はNAの値にしてください。

ただし、データを消去し、NA値なしで後で再利用したい場合があります。ここでは、is.naを使用して、いくつかのフィルタリングを行く:

Year_No_NA <- Year[!is.na(Bronx$Growth_Rate)] 
Growth_Rate_No_NA <- Bronx$Growth_Rate[!is.na(Bronx$Growth_Rate)] 
+1

提案に感謝しました。それは「思考のための飼料」として役立ち、同様に私は自分の答えを更新しました。 – Ashish