在每个日期重复一列中的名称向量
Repeating a vector of names in a column over each date
我想将向量中的每个字母分配给每个日期,从而导致重复日期。
date_range <- seq(from = as.Date("01/01/2015", "%d/%m/%Y"), to = as.Date("01/12/2021", "%d/%m/%Y"), by = "month")
DF <- data.frame(date = date_range, Source = map(c("a", "b", "c", "d"), rep, length.out = length(date_range)))
这导致将字母重复到它们自己的列中,这就是我现在正在尝试做的。完美的例子是:
date Source
1 01/01/2015 a
2 01/01/2015 b
3 01/01/2015 c
4 01/01/2015 d
5 02/01/2015 a
如果我能提供更多信息,请告诉我!
不要使用map
;您可以利用矢量回收。只需将 date_range
的每个元素重复 4 次即可。
DF <- data.frame(date = rep(date_range, each = 4),
Source = c("a", "b", "c", "d"))
head(DF)
date Source
1 2015-01-01 a
2 2015-01-01 b
3 2015-01-01 c
4 2015-01-01 d
5 2015-02-01 a
6 2015-02-01 b
7 2015-02-01 c
8 2015-02-01 d
9 2015-03-01 a
10 2015-03-01 b
tidyr::separate_rows
的另一个选项:
library(tidyr)
data.frame(date = date_range, Source = c("a,b,c,d")) %>%
separate_rows(Source)
我想将向量中的每个字母分配给每个日期,从而导致重复日期。
date_range <- seq(from = as.Date("01/01/2015", "%d/%m/%Y"), to = as.Date("01/12/2021", "%d/%m/%Y"), by = "month")
DF <- data.frame(date = date_range, Source = map(c("a", "b", "c", "d"), rep, length.out = length(date_range)))
这导致将字母重复到它们自己的列中,这就是我现在正在尝试做的。完美的例子是:
date Source
1 01/01/2015 a
2 01/01/2015 b
3 01/01/2015 c
4 01/01/2015 d
5 02/01/2015 a
如果我能提供更多信息,请告诉我!
不要使用map
;您可以利用矢量回收。只需将 date_range
的每个元素重复 4 次即可。
DF <- data.frame(date = rep(date_range, each = 4),
Source = c("a", "b", "c", "d"))
head(DF)
date Source
1 2015-01-01 a
2 2015-01-01 b
3 2015-01-01 c
4 2015-01-01 d
5 2015-02-01 a
6 2015-02-01 b
7 2015-02-01 c
8 2015-02-01 d
9 2015-03-01 a
10 2015-03-01 b
tidyr::separate_rows
的另一个选项:
library(tidyr)
data.frame(date = date_range, Source = c("a,b,c,d")) %>%
separate_rows(Source)