【发布时间】:2020-01-17 16:05:26
【问题描述】:
我有一个结构如下的时间序列数据框:
>data
ID Location Sex Time Var1 Var2 Var3 Var4 Var5 Var6
12 A M .1 … … … … … …
12 A M .2 … … … … … …
12 A M .3 … … … … … …
12 A M .4 … … … … … …
12 A M .5 … … … … … …
12 A M .6 … … … … … …
234 A M .1 … … … … … …
234 A M .2 … … … … … …
234 A M .3 … … … … … …
234 A M .4 … … … … … …
234 A M .5 … … … … … …
有几百个人,每个人都有一个唯一的 ID 号。每个人有数百次测量。例如,在上面的示例中,个体 12 只有 6 个观察值,个体 234 只有 5 个观察值。实际上,个体 12 可能有 980 个观察值,个体 234 可能有 1249 个观察值。 Var1:6是相应时间物质浓度的测量值。
我想对每个variable 进行这些比较:
1. 每个人的第一次观察和每个人的最后一次观察之间是否存在差异(浓度)
2.每个人的第一次观察和每个人前7次观察的平均值是否有差异
3. 每人最后一次观察与每人最后 7 次观察的平均值之间是否有差异
4. 每个人前 7 次观察的平均值与每个人后 7 次观察的平均值之间是否存在差异
所以我对每个人的所有观察结果进行子集化/计算,并使用pivot_longer() 来构造我的数据框,如下所示:
ID Location Sex Variable FirstPt FirstPt7avg LastPt LastPt7avg
12 A M Var1 … … … …
12 A M Var2 … … … …
12 A M Var3 … … … …
12 A M Var4 … … … …
12 A M Var5 … … … …
12 A M Var6 … … … …
234 A M Var1 … … … …
234 A M Var2 … … … …
234 A M Var3 … … … …
234 A M Var4 … … … …
234 A M Var5 … … … …
234 A M Var6 … … … …
现在我想按ID 对观察结果进行分组,并对每个变量进行配对 t.test。我已经尝试过了,但无法让它工作:
data%>%
group_by(ID)%>%
t.test(FirstPt, FirstPt7avg, paired = T)
我做错了什么?以及将结果保存到新数据框中的最佳方法是什么?
【问题讨论】:
标签: r