Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change the Blank Cells to "NA"

Tags:

r

na

Here's the link of my data.

My target is to assign "NA" to all blank cells irrespective of categorical or numerical values. I am using na.strings="". But it's not assigning NA to all blank cells.

## reading the data dat <- read.csv("data2.csv") head(dat)   mon hr        acc   alc sex spd axles door  reg                                 cond1 drug1 1   8 21 No Control  TRUE   F   0     2    2      Physical Impairment (Eyes, Ear, Limb)     A 2   7 20 No Control FALSE   M 900     2    2                                Inattentive     D 3   3  9 No Control FALSE   F 100     2    2 2004                                Normal     D 4   1 15 No Control FALSE   M   0     2    2      Physical Impairment (Eyes, Ear, Limb)     D 5   4 21 No Control FALSE      25    NA   NA                                                D 6   4 20 No Control    NA   F  30     2    4                Drinking Alcohol - Impaired     D        inj1 PED_STATE st rac1 1     Fatal      <NA>  F <NA> 2  Moderate      <NA>  F <NA> 3  Moderate      <NA>  M <NA> 4 Complaint      <NA>  M <NA> 5 Complaint      <NA>  F <NA> 6  Moderate      <NA>  M <NA>   ## using na.strings dat2 <- read.csv("data2.csv", header=T, na.strings="") head(dat2)   mon hr        acc   alc sex spd axles door  reg                                 cond1 drug1 1   8 21 No Control  TRUE   F   0     2    2 <NA> Physical Impairment (Eyes, Ear, Limb)     A 2   7 20 No Control FALSE   M 900     2    2 <NA>                           Inattentive     D 3   3  9 No Control FALSE   F 100     2    2 2004                                Normal     D 4   1 15 No Control FALSE   M   0     2    2 <NA> Physical Impairment (Eyes, Ear, Limb)     D 5   4 21 No Control FALSE      25    NA   NA <NA>                                  <NA>     D 6   4 20 No Control    NA   F  30     2    4 <NA>           Drinking Alcohol - Impaired     D        inj1 PED_STATE st rac1 1     Fatal        NA  F   NA 2  Moderate        NA  F   NA 3  Moderate        NA  M   NA 4 Complaint        NA  M   NA 5 Complaint        NA  F   NA 6  Moderate        NA  M   NA 
like image 718
S Das Avatar asked Jun 11 '14 20:06

S Das


People also ask

How do you set NA to zero?

To replace NA with 0 in an R data frame, use is.na() function and then select all those values with NA and assign them to 0. myDataframe is the data frame in which you would like replace all NAs with 0.


2 Answers

I'm assuming you are talking about row 5 column "sex." It could be the case that in the data2.csv file, the cell contains a space and hence is not considered empty by R.

Also, I noticed that in row 5 columns "axles" and "door", the original values read from data2.csv are string "NA". You probably want to treat those as na.strings as well. To do this,

dat2 <- read.csv("data2.csv", header=T, na.strings=c("","NA")) 

EDIT:

I downloaded your data2.csv. Yes, there is a space in row 5 column "sex". So you want

na.strings=c(""," ","NA") 
like image 110
Badoe Avatar answered Oct 13 '22 03:10

Badoe


This should do the trick

dat <- dat %>% mutate_all(na_if,"") 
like image 21
Jonathan Avatar answered Oct 13 '22 05:10

Jonathan