这就是我的数据的样子:
1 2 3
1 20.47039 xae 20.65273
2 21.94899 xei 22.06170
3 22.96345 p 23.06622
4 23.61655 xei 23.68949
5 24.50835 p 24.57134
6 25.92349 xa 26.01042
7 26.34687 no 26.44185
8 27.83433 xoe 27.93414
我现在想计算第 2 行中的时间 tmin 和第 1 行中的 tmax 之间的差异。我设法使用 for 循环来做到这一点:
for (i in 1:nrow(data)) {
difference[i] = (VP3_erw[i+1,1]) - (VP3_erw[i, 3])
}
但是,每当在列p
中写入时,我都想计算
difference[i] = (data[i+1,1]) - (data[i, 3]) - (data([p,3]) - datadata([p,1]))
p
在这里代表p
被索引的行
我试图解决charmatch
:
p= c("p")
ind_p = (as.numeric(row.names(data)) & charmatch((substr(as.character(data[,2]),1,1)), p, nomatch = FALSE) > 0)
而不是试图将其引入 if 循环:
if (ind_p == "FALSE") {
for (i in 1:nrow(data)) {
difference[i] = (VP3_erw[i+1,1]) - (VP3_erw[i, 3])
}
else {
difference[i] = (data[i+1,1]) - (data[i, 3]) - (data([p,3]) - datadata([p,1]))
}
}
但我确实在索引到p
写入的行和使用 if - 循环时遇到了问题。
非常感谢您的帮助。