[R] dataframe operation

Marc Schwartz marc_schwartz at comcast.net
Wed Jan 24 21:10:54 CET 2007


On Wed, 2007-01-24 at 20:27 +0100, Indermaur Lukas wrote:
> hi
> i have a dataframe "a" which looks like:
>  
> column1, column2, column3
> 10,12, 0
> NA, 0,1
> 12,NA,50
>  
> i want to replace all values in column1 to column3 which do not contain "NA" with values of vector "b" (100,200,300).
>  
> any idea i can do it?
>  
> i appreciate any hint
> regards
> lukas
>  

Here is one possibility:

> sapply(seq(along = colnames(DF)), 
         function(x) ifelse(is.na(DF[[x]]), 100 * x, DF[[x]]))
     [,1] [,2] [,3]
[1,]   10   12    0
[2,]  100    0    1
[3,]   12  200   50


Note that the returned object will be a matrix, so if you need a data
frame, just coerce the result with as.data.frame().

HTH,

Marc Schwartz



More information about the R-help mailing list