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"),
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
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%