查看以下数据框
1 1 3
2 1 6
3 1 7
2 1 6
3 1 7
4 1 8
5 1 13
6 0 10
5 1 13
4 1 12
5 1 13
6 1 14
7 NA NA
8 0 16
7 NA NA
6 NA NA
在左栏中,我有一个小样本。
在中间列上,我有一个测试值:if the number on the left eventually rises by a value of 2 before dropping by a value of 2, the binary value is "1", if the number declines first by 2 before rising 2, the binary is "0"
在第三列,我想要满足标准的位置
2上升到4 ......假人是“1”......最后一栏说“4”在6号位置
在达到8之前,6下降到4,因此假人为“0”。最后一栏说特定的“4”位于第10位
修改
谢谢Matt
答案 0 :(得分:0)
这样的事可能适合你。
x <- data.frame(V1 = c(1, 2, 3, 2, 3, 4, 5, 6, 5, 4, 5, 6, 7, 8, 7, 6))
for(i in 1:nrow(x)){
for(j in i:nrow(x)){
if(x[j,1] - x[i,1] == 2){
x[i,2] <- 1
x[i,3] <- j
break()
} else if(x[j,1] - x[i,1] == -2){
x[i,2] <- 0
x[i,3] <- j
break()
} else{
x[i,2] <- NA
x[i,3] <- NA
}
}
}