Skip to content

Why is conversion not working?

2 messages · Jonas Malmros, jim holtman

#
I have a data frame, where two last columns - "month" and "year" - are
character vectors. The "year" vector is made of two numbers (i.e. "97"
for 1997, "07" for 2007, etc)
What I want to do is to create a variable "Year" that is mode numeric
and where each record is a four-figure number (1997, 2007,...)
I have about 40000 rows in the dataframe, the observations are for 10
years (so there are multiple rows for each year).
I tried the following, but the program runs and runs, and if I abort
it all the years in "Year" are 1997:

for(i in 1:dim(database)[1]){
    if(database$year[i]>90) {
           database$Year[i] <- as.numeric(database$year[i])+1900 } else {
           database$Year[i] <- as.numeric(database$year[i])+2000
    }
}

Thanks in advance for explanations.

Regards,
JM
#
try this:
+     year=as.character(sample(c(0:7, 95:99), 1000, TRUE)),
stringsAsFactors=FALSE)
month year Year
1    10   96 1996
2     9    5 2005
3     8   95 1995
4     1    7 2007
5    11    3 2003
6     2   99 1999

        
On Dec 17, 2007 7:52 PM, Jonas Malmros <jonas.malmros at gmail.com> wrote: