Handling missing/incomplete data in R

Posted by doug on Stack Overflow See other posts from Stack Overflow or by doug
Published on 2010-04-10T12:52:47Z Indexed on 2010/04/10 15:13 UTC
Read the original article Hit count: 264

Filed under:
|

As you would expect from a DSL aimed at data analysts, R handles missing/incomplete data very well, for instance:

Many R functions have an 'na.rm' flag that you can set to 'T' to remove the NAs, but if you want to deal with this before the function call, then:

to replace each 'NA' w/ 0:

ifelse(is.na(vx), 0, vx)

to remove each 'NA':

vx = vx[!is.na(a)]

to remove entire each row that contains 'NA' from a data frame:

dfx = dfx[complete.cases(dfx),]

All of these functions remove 'NA' or rows with an 'NA' in them.

Sometimes this isn't quite what you want though--making an 'NA'-excised copy of the data frame might be necessary for the next step in the workflow but in subsequent steps you often want those rows back (e.g., to calculate a column-wise statistic for a column that has missing rows caused by a prior call to 'complete cases' yet that column has no 'NA' values in it).

to be as clear as possible about what i'm looking for: python/numpy has a class, 'masked array', with a 'mask' method, which lets you conceal--but not remove--NAs during a function call. Is there an analogous function in R?

© Stack Overflow or respective owner

Related posts about r

    Related posts about data