[R] Replace / with - in date

David Winsemius dwinsemius at comcast.net
Thu Apr 15 20:45:08 CEST 2010


On Apr 15, 2010, at 2:28 PM, Christian Raschke wrote:

> Is there anything that speaks against just applying gsub to the  
> factor levels if one would like to keep everything as factors (and  
> not consider true Date classes or character vectors)? I.e:
>
> > x <- c("2000/01/01", "2001/02/01")
> > xd <- as.data.frame(x)
> > levels(xd$x) <- gsub("/", "-", levels(xd$x))

Nothing. Other than the fact (which is not at all obvious to the new  
useRs) that it requires knowledge that the string representations are  
stored within the factor levels and not the factor values, and that  
operations on factors are often quite puzzling to the uninitiated. If  
one were to attempt applying a function that takes Date or Datetime  
arguments to such a "date-like-factor", it is very likely that the  
initial results would be failures. The OP referred to the strings as a  
"date value" rather than as a factor level. I doubt that he realized  
the default operation of as.data.frame().

-- 
David.

>
> Christian
>
>
> On 04/15/2010 01:08 PM, David Winsemius wrote:
>>
>> 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
>>
>> ______________________________________________
>> 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.
>
>
> -- 
> Christian Raschke
> Department of Economics
> and
> ISDS Research Lab (HSRG)
> Louisiana State University
> Patrick Taylor Hall, Rm 2128
> Baton Rouge, LA 70803
> crasch2 at lsu.edu
>
> ______________________________________________
> 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



More information about the R-help mailing list