У меня есть кадр данных, так же, как этот:tapply на основе нескольких индексов в R
ref=rep(c("A","B"),each=240)
year=rep(rep(2014:2015,each=120),2)
month=rep(rep(1:12,each=10),4)
values=c(rep(NA,200),rnorm(100,2,1),rep(NA,50),rnorm(40,4,2),rep(NA,90))
DF=data.frame(ref,year,month,values)
Я хотел бы, чтобы вычислить максимальное число последовательных ВПЛ в качестве ссылки, в год. Я создал функцию, которая выдает максимальное количество последовательных NA, но может быть основана только на одной переменной.
Например,
func <- function(x) {
max(rle(is.na(x))$lengths)
}
with(DF, tapply(values,ref, func))
# A B
# 200 90
with(DF, tapply(values,year, func))
# 2014 2015
# 120 90
Таким образом, есть максимум 200 последовательных ВПЛ в работе А в общей сложности, и максимум 90 в исх B, который является правильным. Есть также 120 NAs в 2014 году и 90 в 2015 году
То, что я хотел бы это результат за исх и год, например:
A 2015 80
A 2014 120
B 2015 90
B 2014 50
Это именно то, что я хочу. Благодаря! – sym246