按r中的日期拆分数据帧



我有一个数据集,它有一个日期列和一个数据列。

每个日期的行数可能不相同,其中一些日期可能只有10行,而不是24行。数据集如下:

4<1><1><1>
日期 小时
10-06-2000 1
2 5
3 7
4 7
5 8
6 1
7 7
8 2
9 3
10 4
11 5
12 7
13 8
14 9
15 10
16 12
17
18 4
19 7
20 9
21 10
22 7
23 8
24 9
2000年6月11日 9
10 4
11 5
12 7
13 8
14 9
15 10
16 12
17
18 4
19 7
20 9
21 10
22 7
23 8
24 9

如果您确信数据按正确的顺序排序,则可以使用tidyr::fill:

library(tidyr)
df <- data.frame(
Date = c("10-06-2000", rep(NA, 5), "11-06-2000", rep(NA, 12)),
hour = c(4:9, 1:13),
value = 1:19
)
df_filled <- fill(df, Date, .direction = "down")
split(df_filled, df_filled$Date)

$`10-06-2000`
Date hour value
1 10-06-2000    4     1
2 10-06-2000    5     2
3 10-06-2000    6     3
4 10-06-2000    7     4
5 10-06-2000    8     5
6 10-06-2000    9     6
$`11-06-2000`
Date hour value
7  11-06-2000    1     7
8  11-06-2000    2     8
9  11-06-2000    3     9
10 11-06-2000    4    10
11 11-06-2000    5    11
12 11-06-2000    6    12
13 11-06-2000    7    13
14 11-06-2000    8    14
15 11-06-2000    9    15
16 11-06-2000   10    16
17 11-06-2000   11    17
18 11-06-2000   12    18
19 11-06-2000   13    19

您也可以将group_split()fill():结合使用

library(tidyr)
library(dplyr)
df <- data.frame(
Date = c("10-06-2000", rep(NA, 5), "11-06-2000", rep(NA, 12)),
hour = c(4:9, 1:13),
value = 1:19
)
df_filled <- df |> 
fill(Date, .direction = "down") |> 
group_split(Date) |> 
purrr::set_names(unique(df$Date)[!is.na(unique(df$Date))])

相关内容

  • 没有找到相关文章

最新更新