每小时对 R 中基于时间的数据进行子集化
Subsetting time based data in R on hourly basis
我有基于小时的数据集,即 hour1 的一些数据行等等。我不知道每小时的数据行数,我想创建一个只有每小时第一个条目的新数据集。
对于这样的数据集,
hour data
1 33
1 34
1 36
2 38
2 40
3 41
3 42
我只想提取第 1 小时的第一个读数,然后提取第 2 小时的第一个读数,依此类推。然后我想减去连续的读数。比如,38-33 和 41-38
library(dplyr) # df1 is your data frame
df1 %>%
group_by(hour) %>%
summarise(first=first(data))%>%
mutate(first_diff=lead(first,1)-first)
Source: local data frame [3 x 3]
hour first first_diff
1 1 33 5
2 2 38 3
3 3 41 NA
或者,
library(dplyr) # df1 is your data frame
df1 %>%
group_by(hour) %>%
summarise(first=first(data))%>%
mutate(first_diff=lag(first,1)-first)
Source: local data frame [3 x 3]
hour first first_diff
1 1 33 NA
2 2 38 -5
3 3 41 -3
我有基于小时的数据集,即 hour1 的一些数据行等等。我不知道每小时的数据行数,我想创建一个只有每小时第一个条目的新数据集。 对于这样的数据集,
hour data
1 33
1 34
1 36
2 38
2 40
3 41
3 42
我只想提取第 1 小时的第一个读数,然后提取第 2 小时的第一个读数,依此类推。然后我想减去连续的读数。比如,38-33 和 41-38
library(dplyr) # df1 is your data frame
df1 %>%
group_by(hour) %>%
summarise(first=first(data))%>%
mutate(first_diff=lead(first,1)-first)
Source: local data frame [3 x 3]
hour first first_diff
1 1 33 5
2 2 38 3
3 3 41 NA
或者,
library(dplyr) # df1 is your data frame
df1 %>%
group_by(hour) %>%
summarise(first=first(data))%>%
mutate(first_diff=lag(first,1)-first)
Source: local data frame [3 x 3]
hour first first_diff
1 1 33 NA
2 2 38 -5
3 3 41 -3