Mark Na
2010-Mar-23 18:27 UTC
[R] Conditional replacement of NA depending on value in the previous column
Dear R-helpers, I have a dataframe like this: ID X1 X2 X3 X4 X5 X6 49 1 1 1 0 NA NA 50 1 1 1 1 NA 1 I would like to convert a missing value (NA) that follows a 0 (zero) or another missing value (NA) into a 0 (zero). So, the above lines would be converted to: ID X1 X2 X3 X4 X5 X6 49 1 1 1 0 0 0 50 1 1 1 1 NA 1 I have been struggling with this all morning, so any help you could provide would be much appreciated. Thank you! Mark Na [[alternative HTML version deleted]]
Phil Spector
2010-Mar-23 18:51 UTC
[R] Conditional replacement of NA depending on value in the previous column
Mark - Does this do what you want? dat = data.frame(X1=c(1,1),X2=c(1,1),X3=c(1,1), X4=c(0,1),X5=c(NA,NA),x6=c(NA,1)) fixit = function(x){ y = c(x[-1],0) x[is.na(y) & is.na(x)] = 0 x} t(apply(dat,1,fixit)) X1 X2 X3 X4 X5 x6 [1,] 1 1 1 0 0 0 [2,] 1 1 1 1 NA 1 - Phil Spector Statistical Computing Facility Department of Statistics UC Berkeley spector at stat.berkeley.edu On Tue, 23 Mar 2010, Mark Na wrote:> Dear R-helpers, > > I have a dataframe like this: > > ID X1 X2 X3 X4 X5 X6 > 49 1 1 1 0 NA NA > 50 1 1 1 1 NA 1 > > I would like to convert a missing value (NA) that follows a 0 (zero) or > another missing value (NA) into a 0 (zero). > > So, the above lines would be converted to: > > ID X1 X2 X3 X4 X5 X6 > 49 1 1 1 0 0 0 > 50 1 1 1 1 NA 1 > > I have been struggling with this all morning, so any help you could provide > would be much appreciated. > > Thank you! > > Mark Na > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >