我有一个 6 列的 data.frame。第一个用于主题,第二个用于实验中的块,第 3,4 和 5 列是我需要计算二进制分数(0 或 1)的值,我想将其添加到第六列(这就是为什么现在,它充满了0)。
head(kfdblock3to9)
subject time gr ugr sdugr IL
40002.3 40002 3 0.4475618 0.3706000 0.02994533 0
40002.4 40002 4 0.4361786 0.3901111 0.01846110 0
40002.5 40002 5 0.4279880 0.4550000 0.02811839 0
40002.6 40002 6 0.4313647 0.4134444 0.04352974 0
40002.7 40002 7 0.4420889 0.4394286 0.02883143 0
40002.8 40002 8 0.4325227 0.3960000 0.06559222 0
我正在尝试使用 for 循环来做到这一点,但我是 R 的初学者,我在这方面遇到了困难。我试图实现的评分公式是:如果第 3 列中的值 ($gr) 小于第 4 列中的值 ($ugr) 和第 5 列中的值 ($sdugr) 之间的差值的 0.35 倍),则主体收到 1,否则为 0。
到目前为止我尝试过的是:
for (i in kfdblock3to9$subject) {
if (kfdblock3to9$gr<(kfdblock3to9$ugr-(.35*kfdblock3to9$sdugr)))
kfdblock3to9$IL=1
else kfdblock3to9$IL=0
}
这给了我 50 个警告,都说:“条件的长度 > 1,并且只使用第一个元素”
我想我当时对索引做错了,但我无法弄清楚。任何帮助深表感谢。