Мои данные выглядят примерно так:
db <- as.data.frame(matrix(ncol=10, nrow=3,
c(3,NA,NA,4,5,NA,7,NA,NA,NA,NA,NA,7,NA,8,9,NA,NA,4,6,NA,NA,7,8,11,5,10,NA,NA,NA), byrow = TRUE))
db
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 3 NA NA 4 5 NA 7 NA NA NA
2 NA NA 7 NA 8 9 NA NA 4 6
3 NA NA 7 8 11 5 10 NA NA NA
Для каждой строки я пытаюсь подсчитать количество NA, которые появляются между первым и последним не-NA элементом (у меня есть цифры и символы) по строке .
Выходные данные должны быть примерно такими:
db$na.tot <- c(3, 3, 0)
db
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 na.tot
1 3 NA NA 4 5 NA 7 NA NA NA 3
2 NA NA 7 NA 8 9 NA NA 4 6 3
3 NA NA 7 8 11 5 10 NA NA NA 0
Где na.tot
представляет количество NA, наблюдаемых между первым и последним не-NA элементами за строкой (между 3 и 7,7 и 6 и 7 и 10 в строках 1, 2 и 3 соответственно).
У кого-нибудь есть простое решение?
Спасибо!