Как удалить NA из факторной переменной (и из диаграммы ggplot)?

У меня проблема с NA в переменной фактора, поскольку ggplot включает их в график, как если бы они были другой категорией/уровнем. Я хотел бы удалить недостающие данные. К сожалению, в данный момент у меня нет под рукой кода, я попытался удалить уровни факторов из набора данных, который нашел в data(), но это не сработало.

Была ли у кого-то такая же проблема?

Я попробовал решение, предложенное здесь Удалить неиспользуемые уровни факторов из панели ggplot сюжет но я получаю сообщение об ошибке

Ошибка: неожиданный символ в: mycode

Может кто-нибудь что-нибудь предложить?

Кроме того, если нет возможности удалить их из кода ggplot, как я могу удалить NA из факторной переменной?


person Pulse    schedule 02.07.2013    source источник


Ответы (3)


предполагая, что ваши данные находятся во фрейме данных под названием dat

newdat <- dat[!is.na(dat$Factor), ]

не уверен, как решить проблему внутри кода ggplot

person Jota    schedule 02.07.2013
comment
спасибо @Frank, это работает, вопрос: удаляет ли он случаи с NA в этой факторной переменной в наборе данных? - person Pulse; 02.07.2013
comment
Команда говорит удалить всю строку каждый раз, когда is.na(dat$Factor) равно TRUE - person Jota; 02.07.2013
comment
@baptiste Я изменил код, чтобы отразить ваш комментарий. Я не знал, что это так работает. Спасибо за комментарий. - person Jota; 02.07.2013
comment
@Frank, извините, я не совсем понимаю, он удаляет целые строки каждый раз, когда is.na(dat$Factor) становится TRUE, вы имеете в виду, что мне нужно вызвать эту функцию iside ggplot или любую другую функцию? - person Pulse; 05.07.2013
comment
Вы можете сделать это или создать новый объект (например, newdat), чтобы содержать подмножество исходных данных. Затем используйте новый объект внутри вашей функции ggplot. - person Jota; 05.07.2013

Я бы использовал qplot вместо ggplot таким образом:

qplot(x=column, data=subset(dataframe,!is.na(column)))

Надеюсь, это поможет.

person Giacomo    schedule 15.05.2014

Ответы в этой связанной теме: NA строятся в boxplot ggplot2

Короче, вместо обычного:

ggplot(data=data)

использовать

ggplot(data=na.omit(data[,c("var1","var2",...)])) 

где var1, var2 и т. д. — переменные, которые вы рисуете.

person Lynsey    schedule 31.07.2016