我有一个数据框架,看起来像这样,其中每个观察值都是学校的招生规模:
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 我试图计算学校关闭前一年招生人数下降的斜率,其产出最终出现在“斜率”栏中。
更一般地,我试图计算一系列观测值的斜率,直到第一个“停止”值(在本例中为零)。
发布于 2020-02-06 23:06:57
遍历每一行,得到系数,如下所示:
#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.000000https://stackoverflow.com/questions/60097782
复制相似问题