Dear Nancy,
Try also:
 x <- c(4,5,6,6,8)
 y <- c("a","b","b","b","c")
 mydata <- data.frame(x,y)
 mydata

 mydata$x <- with(mydata, ifelse(x == 6, 66, x))
 mydata

See ?ifelse for more details. BTW, be careful: "data" is an R reserved name
 :-)

HTH,
Jorge


On Tue, Aug 11, 2009 at 2:05 PM, SNN <> wrote:

>
> Hi All,
>
> this could be a simple question but I am looking into modifying a data
> frame
> using a "condition" without the need to loop over that data, would that be
> possible?
>
> I have tried the following
>
> > x<-c(4,5,6,6,8)
> > y<-c("a","b","b","b","c")
> > data<-data.frame(x,y)
> > data
>  x y
> 1 4 a
> 2 5 b
> 3 6 b
> 4 6 b
> 5 8 c
>  if (data$x==6){
> data$x<-66
> }
> Warning message:
> In if (data$x == 6) { :
>  the condition has length > 1 and only the first element will be used
> >
>
> I woul dlike to change the 6 in column x into 66
> why the above did not work?
>
> Thanks
> --
> View this message in context:
> http://www.nabble.com/Problem-with-modifying-a-data-frame-tp24922814p24922814.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@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.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to