2016-04-08 17 views
0

Dplyr ve ggplot2 ile na değerleri içeren yığılmış bir barplotu nasıl yapabilirim?dplyr/ggplot2: na değerlerini içeren yığılmış çubuklarla zaman grafiği

x Eksen: Yıl
Y Ekseni: ne denedim NA'nın gözlemlerin numaraları ve sayıları

data <- data.frame(year = c(2015, 2015, 2016, 2016), 
        column2 = c(4, NA, 9, 1)) 


library (dplyr) 

missing_data <- data %>% 
        count(year, complete.cases(column2)) 

Benim sonuçları

year complete.cases(column2)  n 
(dbl)      (lgl) (int) 
1 2015     FALSE  1 
2 2015     TRUE  1 
3 2016     TRUE  2 

:

library(ggplot2) 
na_plot <- ggplot (missing_data, aes(x=year, y=n)) 
na_plot+ 
geom_bar(stat="identity", aes(fill = complete.cases(column2)) 
+0

aes deyimi içinde "grubu = complete.cases (sütun2)" ekleyerek misiniz hile yapmak? –

+0

Sözdizimsel olmayan geçerli adlar etrafında arka keneler kullanabilirsiniz: \ 'complete.cases (column2)' – aosmith

cevap

1

bence complete.cases işlevi, bir şekilde variab ile çakışıyor le adı. Deneyin adlandırma (ayrıca factoryear):

data <- data.frame(year = c(2015, 2015, 2016, 2016), 
        column2 = c(4, NA, 9, 1)) 

library(dplyr) 
library(ggplot2) 

missing_data <- data %>% 
    count(year, complete.cases(column2)) 

names(missing_data)[2] = "col2" 

na_plot <- ggplot(missing_data, aes(x=factor(year), y=n)) 
na_plot + geom_bar(stat="identity", aes(fill = col2)) 
+0

Harika çalışıyor. Dplyr yeniden adlandırma işleviyle hiçbir başarıda denedim. TRUE ve FALSE öğesini arsada değiştirebilir miyim? – Wilcar

+0

@Wilcar, değişken seviyelerini kaydetmek gibi mi demek istiyorsun? "Ifelse" yi dene. – jakub

+0

ifelse'i nasıl kullanabilirim? – Wilcar

İlgili konular