[R] conditional data replace (recode, change or whatsoever)

David Winsemius dwinsemius at comcast.net
Wed Aug 3 15:08:52 CEST 2011


On Aug 3, 2011, at 8:09 AM, zcatav wrote:

> Your suggestion works perfect as i pointed previous message. Now  
> have another
> question about data editing. I try this code:
> X[X[,"c"]==1,"b"]<-X[,"d"]
> and results with error: `[<-.data.frame`(`*tmp*`, X[, "c"] == 1,  
> "b", value
> = c(NA,  :
>  replacement has 9 rows, data has 2
>
> Logically i selected 2 rows with X[,"c"]==1. Than i want to replace  
> in that
> rows its own data from "d" to "b" with X[,"b"]<-X[,"d"]. What is  
> wrong?

You need to apply the same logical test/selection on the rows of the  
RHS as you are doing on the LHS.
Possibly:

X[ X[,"c"]==1, "b"] <- X[ X[,"c"]==1, "d"]

(No data, not tested code.)
-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list