Hi,every one .I have searched the solutions in the forum for replacing my date value which is in a data frame ,01/01/2000 to 01-01-2000 using replace function but got the following warning message x<-"2000/01/01" xd<-as.data.frame(x) xd$x<-replace(xd$x,xd$x=="/","-") Warning message: In `[<-.factor`(`*tmp*`, list, value = "-") : invalid factor level, NAs generated Is there any other method of doing it? or am i missing something?. please let me know if you need any more information. Thanks. Prem -- View this message in context: http://n4.nabble.com/Replace-with-in-date-tp1911391p1911391.html Sent from the R help mailing list archive at Nabble.com.
On Apr 15, 2010, at 1:51 PM, prem_R wrote:> > Hi,every one .I have searched the solutions in the forum for > replacing my > date value which is in a data frame ,01/01/2000 to 01-01-2000 using > replace > function but got the following warning message > x<-"2000/01/01" > xd<-as.data.frame(x) > xd$x<-replace(xd$x,xd$x=="/","-")The replace function does not work with factors, it works with (complete) vectors, not substrings. It's also a real hassle to do such operations on factors, so just use character vectors and try gsub instead: > x<-"2000/01/01" > xd<-as.data.frame(x, stringsAsFactors=FALSE) > xd$x2<-gsub("/","-", xd$x) > xd x x2 1 2000/01/01 2000-01-01> > > Warning message: > In `[<-.factor`(`*tmp*`, list, value = "-") : > invalid factor level, NAs generated > > Is there any other method of doing it? or am i missing something?. > please > let me know if you need any more information. > > Thanks. > > Prem > -- > View this message in context: http://n4.nabble.com/Replace-with-in-date-tp1911391p1911391.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.David Winsemius, MD West Hartford, CT
Thanks Mr.Winsemius for the proposed solution ,it worked fine.But when came to the entire data frame containing 400000 rows ,i used the following code as proposed by you a$date1<-gsub("/","-",a$date) got the following error: Error in `$<-.data.frame`(`*tmp*`, "date1", value = character(0)) : replacement has 0 rows, data has 441906 Please provide solution with the problem. Thanks. -- View this message in context: http://n4.nabble.com/Replace-with-in-date-tp1911391p1914541.html Sent from the R help mailing list archive at Nabble.com.
On Apr 15, 2010, at 2:22 PM, prem_R wrote:> > Thanks Mr.Winsemius for the proposed solution ,it worked fine.But > when came > to the entire data frame containing 400000 rows ,i used the > following code > as proposed by you > > a$date1<-gsub("/","-",a$date) > > got the following error: > Error in `$<-.data.frame`(`*tmp*`, "date1", value = character(0)) : > replacement has 0 rows, data has 441906 > > Please provide solution with the problem.Please provide sample data for the problem.> > Thanks. > -- > View this message in context: http://n4.nabble.com/Replace-with-in-date-tp1911391p1914541.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.David Winsemius, MD West Hartford, CT