Макс данных в год - PullRequest
       4

Макс данных в год

0 голосов
/ 09 октября 2018
start.date  spell length  
1987-10-01         34  
1987-10-25         2  
1987-10-30         5  
1987-11-16         78  

Я пытаюсь найти код, который может просматривать данные за 30 лет и сохраняет только самую продолжительную продолжительность каждого года.Теоретически, у меня было бы 30 дат и 30 периодов заклинаний в кадре данных.Заранее спасибо!

Конечный результат

start.date  spell length  
1987-11-16        78

1 Ответ

0 голосов
/ 09 октября 2018

Мы могли бы использовать which.max, чтобы найти индекс максимального значения в столбце "spell length" и использовать его для подмножества строки набора данных

dat[which.max(dat[[2]]),, drop = FALSE]

Если существует несколько лет,затем извлеките часть 'year' как переменную группировки, которая будет использоваться в ave для создания логического индекса для поднабора строк набора данных

grp <- format(as.Date(dat$start.date), "%Y")
i1 <- with(dat, ave(`spell length`, grp, FUN = max) == `spell length`)
dat[i1, , drop = FALSE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...