Pulse
Pulse

Reputation: 897

How to remove NA from a factor variable (and from a ggplot chart)?

I have a problem with NA in a factor variable since ggplot includes them in the plot as if they are another category/level. I would like to drop the missing data. I am sorry I don't have code handy at the moment, I tried to remove factor levels from dataset that I found at data() and it did not work.

Had someone the same problem?

I tried the solution suggested here Remove unused factor levels from a ggplot bar plot but I get an error

Error: unexpected symbol in: mycode

Can someone suggest something?

Also, if there is no way to remove them from inside the ggplot code, how can I remove the NA from a factor variable?

Upvotes: 6

Views: 33836

Answers (3)

Lynsey
Lynsey

Reputation: 357

Answers on this related thread: NA's are being plotted in boxplot ggplot2

In brief, instead of the usual:

ggplot(data=data)

use

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

where var1, var2 etc are the variables you are plotting.

Upvotes: 2

Giacomo
Giacomo

Reputation: 1945

I'd use qplot instead of ggplot in this way:

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

I hope this helps.

Upvotes: 2

Jota
Jota

Reputation: 17611

assuming your data is in a data frame called dat

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

not sure how to solve the problem inside of ggplot code

Upvotes: 6

Related Questions