2015-08-14 3 views
0

Я пытаюсь выполнить ggplots в R. У моего набора данных есть несколько строк с NA для одной или нескольких переменных. Как я могу получить NA на графике? Вот мой код:R ggplot omit NA

met$marker_Degree2 = factor(met$marker_Degree, levels=c("none", "weak")) 
p4 <- ggplot(met, aes(factor(marker_Degree2), avgtsh)) 
p4 + ggtitle('Serum marker and Tumor marker') + 
geom_point(shape=21, size=4, aes(color=factor(marker_Degree2))) + 
scale_color_manual(values = c("orange", "green")) + 
theme_bw() + 
xlab("Marker Tissue Staining Degree") + 
ylab("Mean marker Level in Serum") 
+1

Дайте образец для вас данных. – Teo

+0

NA должно быть опущено по умолчанию в 'ggplot' – kristang

+0

только для числовых символов – nathanesau

ответ

1

Вот пример

mydata <- data.frame(income=c(50000,NA,10000,30000), y=c("male", "female", NA, "female")) 
p <- ggplot(mydata, aes(x,z)) 
p + geom_point() 

Обратите внимание, что NA для числовых данных() автоматически скрываются, но не для символьных данных(), поэтому NA показывает вверх. Поэтому вам нужно сделать что-то подобное.

plot_row <- apply(mydata, 1, function(x) sum(!is.na(x))) == ncol(mydata) 
p <- ggplot(mydata[plot_row,], aes(x,z)) 
p + geom_point() 
0

Одним из способов обработки пример вы предоставили следующим образом:

mydata <- data.frame(income=c(50000,NA,10000,30000), y=c("male", "female", NA, "female")) 
p <- ggplot(mydata, aes(income,y)) 
p + geom_point(na.rm = TRUE) + ylim(labels=c("male", "female")) 

В качестве альтернативы,

использование:

ggplot(na.omit(mydata), aes(income,y))