我有一个数据框,其中三列代表三个重复测量:
IDPupil 1 2 3
1 150.5 151.0 150.6
2 156.3 156.5
3 145.7 146.0
4 151.4 151.6
5 150.0 149.5 150.4
我想通过基于以下内容计算三个测量值的行平均值(或中位数)来创建一个新变量:
a) 如果 col 1 和 col 2 之间的差异 >0.4 并且 col 3 中有一个值,则计算行中位数。b) 如果 col 1 和 col 2 之间的差异 >0.4 并且 col 3 中没有值打印“NULL” c) 在所有其他情况下(即 col 1 和 2 之间的差异 <0.4)计算行平均值。
我尝试了以下方法:
Hdiff= hwdata$Height1 - hwdata$Height2
Hdiff2 = abs(Hdiff)
Hdiff2
MeanH = if(Hdiff2 > 0.4 && hwdata$Height3 > 0) {
rowMedians(hwdata[, c("Height1", "Height2", "Height3")], na.rm = TRUE)
} else if(Hdiff2 > 0.4 & hwdata$Height3 == 0)
MeanH = "NULL"
}else rowMeans (hwdata [, c("Height1", "Height2", "Height3")], na.rm = TRUE)
{
我收到错误:
'Error: could not find function "rowMedians"'
和
'Error: unexpected '}' in "}"'
R 经验 = 1 周。有没有更简洁的方法来做到这一点?