每小时在R中对基于时间的数据进行子集

时间:2015-02-27 11:28:16

标签: r subset

我有基于小时的数据集,即小时1的某些数据行,依此类推。我不知道每小时的数据行数,我想创建一个只有每小时第一个条目的新数据集。  对于像这样的数据集,

hour    data
1   33
1   34
1   36
2   38
2   40
3   41
3   42

我想只提取小时1的第一个读数,然后提取小时2的第一个读数,依此类推。然后我想减去连续的读数。比如,38-33和41-38

1 个答案:

答案 0 :(得分:0)

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