Найти наклон серии наблюдений с разными N в каждом ряду - PullRequest
1 голос
/ 06 февраля 2020

У меня есть датафрейм, который выглядит следующим образом, где каждое наблюдение является размером зачисления в школу:

          Year1    Year2    Year3    Year4    Year5    Year6    Year7   Slope
School1    89       87       74        64      0         0       0   
School2    100      99       90        87      83        80      0   
School3    65       30       0         0       0         0       0   

Я пытаюсь рассчитать наклон падений зачисления в год, предшествующий закрытие школы с выводом, заканчивающимся в столбце «уклон».

В более общем смысле я пытаюсь вычислить наклон серии наблюдений вплоть до первого значения «остановки» (в данном случае, нуля).

1 Ответ

1 голос
/ 06 февраля 2020

L oop через каждую строку, получить коэффициент, что-то вроде:

#example data
df1 <- read.table(text = "          Year1    Year2    Year3    Year4    Year5    Year6    Year7   Slope
School1    89       87       74        64      0         0       0   
School2    100      99       90        87      83        80      0   
School3    65       30       0         0       0         0       0   ", header = TRUE, stringsAsFactors = FALSE)


df1$Slope <- apply(df1[ -1 ], 1, function(i){
  x <- i[ i != 0 ]
  fit <- lm(x ~ seq(x))
  fit$coefficients[ 2 ]
})


df1
#     Year1 Year2 Year3 Year4 Year5 Year6 Year7      Slope
# 1 School1    89    87    74    64     0     0  -8.800000
# 2 School2   100    99    90    87    83    80  -4.314286
# 3 School3    65    30     0     0     0     0 -35.000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...