如何标记从它之前或之后的数据点 >X 的数据点
How to mark data points that are >X from the data point before it or after it
我有一个 date/time 数据框,每 15 分钟就有一个值(有数百个数据点)。我想从它之前或之后的值中减去 > 或 < 1.5 的值。
这是我的数据框:
df = structure(list(Timestamp =
structure(c(1622552400, 1622553300, 1622554200,
1622555100, 1622556000, 1622556900),
class = c("POSIXct", "POSIXt"), tzone = "EST"),
Temp = c(13.173, 13.269, 13.269, 13.269, 15.269, 13.269)),
row.names = c(NA, 6L), class = "data.frame")
我想我需要某种循环,但我真的不知道从哪里开始。
理想情况下,结果看起来像一个数据框,其中包含 date/time 列、值列和一个用 0 和 1 填充的新列(其中 0 表示值不是 > 或 < 1.5 并且1 表示该值为 < 或 > 1.5)。所以像这样的 table 在这里(它全为 0,因为 none 的值与它之前的值相比 > 或 < 1.5):
Timestamp Temp Difference_1.5
<dttm> <dbl> <dbl>
1 2021-06-01 08:00:00 13.2 0
2 2021-06-01 08:15:00 13.3 0
3 2021-06-01 08:30:00 13.3 0
4 2021-06-01 08:45:00 13.3 0
5 2021-06-01 09:00:00 13.3 0
6 2021-06-01 09:15:00 13.3 0
>
有什么想法吗?
您可以使用diff()
计算所有连续元素之间的差异。
df$dif <- as.integer(c(FALSE, abs(diff(df$Temp)) > 1.5))
df
# Timestamp Temp dif
# 1 2021-06-01 08:00:00 13.173 0
# 2 2021-06-01 08:15:00 13.269 0
# 3 2021-06-01 08:30:00 13.269 0
# 4 2021-06-01 08:45:00 13.269 0
# 5 2021-06-01 09:00:00 15.269 1
# 6 2021-06-01 09:15:00 13.269 1
我有一个 date/time 数据框,每 15 分钟就有一个值(有数百个数据点)。我想从它之前或之后的值中减去 > 或 < 1.5 的值。
这是我的数据框:
df = structure(list(Timestamp =
structure(c(1622552400, 1622553300, 1622554200,
1622555100, 1622556000, 1622556900),
class = c("POSIXct", "POSIXt"), tzone = "EST"),
Temp = c(13.173, 13.269, 13.269, 13.269, 15.269, 13.269)),
row.names = c(NA, 6L), class = "data.frame")
我想我需要某种循环,但我真的不知道从哪里开始。
理想情况下,结果看起来像一个数据框,其中包含 date/time 列、值列和一个用 0 和 1 填充的新列(其中 0 表示值不是 > 或 < 1.5 并且1 表示该值为 < 或 > 1.5)。所以像这样的 table 在这里(它全为 0,因为 none 的值与它之前的值相比 > 或 < 1.5):
Timestamp Temp Difference_1.5
<dttm> <dbl> <dbl>
1 2021-06-01 08:00:00 13.2 0
2 2021-06-01 08:15:00 13.3 0
3 2021-06-01 08:30:00 13.3 0
4 2021-06-01 08:45:00 13.3 0
5 2021-06-01 09:00:00 13.3 0
6 2021-06-01 09:15:00 13.3 0
>
有什么想法吗?
您可以使用diff()
计算所有连续元素之间的差异。
df$dif <- as.integer(c(FALSE, abs(diff(df$Temp)) > 1.5))
df
# Timestamp Temp dif
# 1 2021-06-01 08:00:00 13.173 0
# 2 2021-06-01 08:15:00 13.269 0
# 3 2021-06-01 08:30:00 13.269 0
# 4 2021-06-01 08:45:00 13.269 0
# 5 2021-06-01 09:00:00 15.269 1
# 6 2021-06-01 09:15:00 13.269 1