[R] Why is conversion not working?

Jonas Malmros jonas.malmros at gmail.com
Tue Dec 18 01:52:51 CET 2007

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.


Jonas Malmros
Stockholm University
Stockholm, Sweden

More information about the R-help mailing list