我有一个变量名称如下的数据框:
a.1, a.3, a.5, a.6, a.9, a.10, a.12
b.1, b.3, b.5, b.6, b.9, b.10, b.12
以此类推,从 a 到 j。
变量名称代表纵向研究中评估的参数和访问次数。
数据框还包含固定的基线参数。
我想为每个参数创建代表自上次访问以来的变化的新变量:
delta.a.3 <- a.3 - a.1
delta.a.5 <- a.5 - a.3
对于所有参数的所有访问,依此类推。
有没有办法自动执行这个任务?
这是我的数据框的摘录:
ID DIAB AGE 20MPACE.0 20MPACE.1 20MPACE.3 20MPACE.5 KOOSKPL.0 KOOSKPL.1 KOOSKPL.3 KOOSKPL.5
1 9000099 0 59 1.3280 1.2946 1.3500 1.2772 100.00 88.89 80.56 83.33
2 9000296 0 69 1.3658 1.3142 NA 1.3944 100.00 100.00 100.00 100.00
3 9000622 0 71 1.4305 1.5178 NA NA 100.00 100.00 NA NA
4 9000798 0 56 1.0636 1.2342 1.1969 1.1572 59.38 59.38 65.63 59.38
5 9001104 0 72 1.3924 1.3473 NA NA 100.00 100.00 83.33 NA
6 9001400 0 75 1.6203 1.5015 1.5051 1.4264 100.00 100.00 100.00 91.67
ID、DIAB、AGE - “固定”基线参数。20MPACE.0、20MPACE.1、20MPACE.3、20MPACE.5 - 在时间点 0、1、3、5 上观察 20MPACE。KOOSKPL.0、KOOSKPL.1 KOOSKPL.3 和 KOOSKPL.5 - 在时间点上观察 KOOSKPL 0、1、3、5。
我想做的事:
计算不同时间点与前一个时间点的参数变化
20MPACE.1-20MPACE.0
20MPACE.3- 20MPACE.1
20MPACE.5-20MPACE.3
KOOSKPL.1 - KOOSKPL.0
KOOSKPL.3 - KOOSKPL.1
KOOSKPL.5 - KOOSKPL.3
要将结果放在相应的列中:
delta.20MPACE.1
delta.20MPACE.3
delta.20MPACE.5。
delta.KOOSKPL.1
delta.KOOSKPL.3
delta.KOOSKPL.5
要计算与时间点 0 相关的不同时间点的参数变化:
20MPACE.1-20MPACE.0
20MPACE.3- 20MPACE.0
20MPACE.5-20MPACE.0
KOOSKPL.1 - KOOSKPL.0
KOOSKPL.3 - KOOSKPL.0
KOOSKPL.5 - KOOSKPL.0
同样,将结果放在列中:
delta0.20MPACE.1
delta0.20MPACE.3
delta0.20MPACE.5。
delta0.KOOSKPL.1
delta0.KOOSKPL.3
delta0.KOOSKPL.5
我一开始没有问最后两个问题。
可能的重点是使循环有选择地在具有相同前缀的变量上工作(例如 20MPACE.0、20MPACE.1、20MPACE.3、20MPACE.5)?有没有办法做到这一点?
我非常感谢您提出的及时且内容丰富的评论!然而,作为一个初学者,我需要一些时间来处理信息,我仍然不明白你告诉我的一切。
再次感谢。