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.