[R] How to replace zero with the character value- need help

arun smartpink111 at yahoo.com
Mon Apr 8 15:10:00 CEST 2013


Hi,
Not sure if you have only one "country" or not. 


Try this:
dat<- data.frame(val,state,country,stringsAsFactors=FALSE)
dat$country[dat$country==0]<-dat$country[1]
#or

#dat$country[dat$country==0]<- dat$country[dat$country!=0]

 res<-do.call(rbind,lapply(split(dat,cumsum(grepl("[A-Za-z]",dat$state))),function(x) {x$state[x$state==0]<- x$state[1];x}))
#or
#res<- do.call(rbind,lapply(split(dat,cumsum(grepl("[A-Za-z]",dat$state))),function(x) {x$state[x$state==0]<- x$state[x$state!=0];x}))
 row.names(res)<- 1:nrow(res)
 res
#          val state country
#1  1.50643668    TN   India
#2 -0.88024059    TN   India
#3  0.35025608    TN   India
#4 -0.08874850    AP   India
#5 -1.69222182    AP   India
#6  0.09479274    AP   India


A.K.

Respected Sir/Madam 

The dataset I have,  given below. 

set.seed <- (1) 
val <- rnorm(6) 
state <- c("TN",0,0,"AP",0,0) 
country <- c("India",0,0,0,0,0) 
dat <- as.data.frame(cbind(val,state,country)) 

The dataset I need is given 

state1 <- c("TN","TN","TN","AP","AP","AP") 
country1 <- c("India","India","India","India","India","India") 
dat1 <- as.data.frame(cbind(val,state1,country1)) 

Please help me or direct me to fill the zeros with the appropriate character values. 
Thanking you in advance 




More information about the R-help mailing list