[R] Using transform to add a date column to a dataframe

Gabor Grothendieck ggrothendieck at gmail.com
Tue Dec 23 15:25:46 CET 2008


or not using transform at all:

data1 <- airquality
data1$Date <- as.Date("1950-01-01")

# or in just one line:

data1 <- replace(airquality, "Date", as.Date("1950-01-01"))


On Tue, Dec 23, 2008 at 9:06 AM, Gavin Simpson <gavin.simpson at ucl.ac.uk> wrote:
> On Tue, 2008-12-23 at 05:24 -0800, Tom La Bone wrote:
>> I would like to add a column to the airquality dataset that contains the date
>> 1950-01-01 in each row. This method does not appear to work:
>>
>> > attach(airquality)
>> > data1 <- transform(airquality,Date=as.Date("1950-01-01"))
>>
>> Error in data.frame(list(Ozone = c(41L, 36L, 12L, 18L, NA, 28L, 23L, 19L,  :
>>   arguments imply differing number of rows: 153, 1
>>
>> I can't decipher what the error message is trying to tell me. Any
>> suggestions on how to do this?
>
> It says that the two arguments have different numbers of observations.
> The reason for which should now be pretty obvious as you provided a
> single Date whereas airquality has 153 observations.
>
> You did read ?transform , which points out this "problem"? ;-)
>
> Anyway, don't assume R recycles everything if it is not of sufficient
> length to match other arguments. In this case, repeat the date as many
> times as there are rows in airquality:
>
>> data(airquality)
>> data1 <- transform(airquality, Date = rep(as.Date("1950-01-01"),
> nrow(airquality)))
>> head(data1)
>  Ozone Solar.R Wind Temp Month Day       Date
> 1    41     190  7.4   67     5   1 1950-01-01
> 2    36     118  8.0   72     5   2 1950-01-01
> 3    12     149 12.6   74     5   3 1950-01-01
> 4    18     313 11.5   62     5   4 1950-01-01
> 5    NA      NA 14.3   56     5   5 1950-01-01
> 6    28      NA 14.9   66     5   6 1950-01-01
>
> Also, the attach(airquality) call in your example doesn't do anything
> that affects your example so is redundant.
>
> HTH
>
> G
>
> --
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>  Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
>  ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
>  Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
>  Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
>  UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
> %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
>
>
> ______________________________________________
> 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.
>
>



More information about the R-help mailing list