首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出每行具有不同N的一系列观察值的斜率

找出每行具有不同N的一系列观察值的斜率
EN

Stack Overflow用户
提问于 2020-02-06 22:55:05
回答 1查看 18关注 0票数 1

我有一个数据框架,看起来像这样,其中每个观察值都是学校的招生规模:

代码语言:javascript
复制
          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   

我试图计算学校关闭前一年招生人数下降的斜率,其产出最终出现在“斜率”栏中。

更一般地,我试图计算一系列观测值的斜率,直到第一个“停止”值(在本例中为零)。

EN

回答 1

Stack Overflow用户

发布于 2020-02-06 23:06:57

遍历每一行,得到系数,如下所示:

代码语言:javascript
复制
#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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60097782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档