[R] how do i find the annual maximun within several years?
Bill.Venables at csiro.au
Bill.Venables at csiro.au
Sat Oct 27 04:37:40 CEST 2007
Oops. It looks like your 'date' is not a true date object, but either a
factor or a character string vector. You may have to change this a bit
to
Year <- function(date)
as.POSIXlt(asDate(date, format = "%m/%d/%Y"))$year + 1900
M1 <- with(tab, tapply(measurement1, Year(date), max, na.rm = TRUE))
(I'm a little surprised you are using that date format, too. I thought
the Americans were the only ones with that odd little quirk...)
Bill Venables.
-----Original Message-----
From: Venables, Bill (CMIS, Cleveland)
Sent: Saturday, 27 October 2007 12:20 PM
To: 'Doerte Salecker'; 'r-help at stat.math.ethz.ch'
Subject: RE: [R] how do i find the annual maximun within several years?
Here's a possibility.
Year <- function(date) as.POSIXlt(date)$year + 1900
M1 <- with(tab, tapply(measurement1, Year(date), max, na.rm = TRUE))
(always you have missing values that you wish to ignore...)
Pity about your busted shift key. Keyboards are pretty cheap these
days, though...
Bill Venables.
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Doerte Salecker
Sent: Saturday, 27 October 2007 4:21 AM
To: r-help at stat.math.ethz.ch
Subject: [R] how do i find the annual maximun within several years?
dear kind helper,
i would like to know how to find the annual maximun for a table that
basicly looks like this:
date time measurement1 measurement2
measurement3
mm/dd/yyyy hh:mm:ss m1 m2 m3
there are about 9000 measurements for each year, which makes it quite
large...
i already tried to subset all rows for a year, to find the maximum
within these choosen rows,
y <- grep(yyyy,table[,1],value=TRUE)
df <-table[with(table, date == y), ]
df[with(df, max(measurement1)), ]
which got result some years, but didn't show all rows within these
years, and for other years it didn't work at all,
V1 V2 V3 V4 V5
NA <NA> <NA> NA NA NA
or/and gave warnings like:
Warning messages:
1: longer object length
is not a multiple of shorter object length in: is.na(e1) |
is.na(e2)
2: longer object length
is not a multiple of shorter object length in:
`==.default`(date, y)
i also tried:
result <- matrix(nrow=0,ncol=2)
for (y in yyyy:yyyy) {
Y <- grep(y, table[,1],value=TRUE)
Max <- max (subset(table, date %in% Y, c(date, measurement1))[,2])
result2 <- (c(y,Max))
result <- rbind(result2,result)
}
print(result)
that kind of worked, but only gave me the year in the result, but i need
the full date, for the statistical analysis.
i hope you can help me with this,
thank you in advance,
d.salecker
______________________________________________
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