r - 为长格式数据集中的每个参与者寻找随时间变化的斜率
问题描述
我想计算每个参与者的线性回归和最大似然斜率。这个很好的回应解释了如何为宽格式数据做到这一点,但我的是“长格式”纵向数据,与Singer & Willet 的青少年酒精使用数据非常相似:
alcohol1 <- read.table("https://stats.idre.ucla.edu/stat/r/examples/alda/data/alcohol1_pp.txt", header=T, sep=",")
例如,我想确定数据集中每个数据的线性回归 (OLS) 和最大似然 ( MLE )alcuse
斜率。age
id
alcohol1
输出可以是另一个数据框,其中每个数据框id
都有一个相应的变量,即其值的斜率,也可以是添加到原始alcohol
数据的列,该数据是该参与者每个实例的斜率。
像 Singer & Willet 一样,我的参与者的出现次数和一些缺失数据的次数并不相同,所以我也想说明这一点。
解决方案
如果您不反对使用 tidyverse 函数:
dat <- data.frame(list(id = c(rep("id1",3),rep("id2",3),rep("id3",3)),
age = rep(c(14, 15, 16), 3),
alc.use = pi + rnorm(.5,1, n = 9)))
head(dat)
id age alc.use
1 id1 14 3.887784
2 id1 15 5.388763
3 id1 16 3.348683
4 id2 14 3.624546
5 id2 15 4.494489
6 id2 16 5.103788
group_by(dat, id) %>% summarize(b0 = coef(lm(alc.use ~ age))[1],
b1 = coef(lm(alc.use ~ age))[2])
# A tibble: 3 x 3
id b0 b1
<fct> <dbl> <dbl>
1 id1 8.25 -0.270
2 id2 -6.69 0.740
3 id3 21.1 -1.14
推荐阅读
- c# - EF linq:单()查询中的位置和选择顺序
- vuejs2 - 如何全局导入 Axios 并在组件中使用?
- javascript - 如何将数组中的值插入到对象数组中
- reactjs - 获取数据时无法读取未定义(读取“地图”)错误的属性
- r - 创建循环以从光栅堆栈创建 NDVI 图像并根据文件名命名它们
- linux - 为什么 $ 找不到 . 返回 .. 目录快捷方式的结果?
- python - 使用python在Windows 10中查找主题是暗还是亮
- android - android - 下载base64编码的pdf文件并打开
- python - 在 Python 中将数据框连接到 SQL 过程
- vue.js - Vue Echarts:使用数据集在雷达图中显示名称和值