我有2个数据帧。在df A中,我有一个ID号。在df B中,我有52行,即日期。
对于df A中的每个ID数字,我想创建一个新记录,其中每个日期都有该ID号。
例如,ID 001在df A中只会出现一次,但是现在将出现52次,对于df B中的每个日期都会出现一次。
我该怎么做?
我创建了一个包含用户ID的df,还创建了另一个包含日期的df。我无法加入他们,因为没有可以加入的领域。我通过,我需要遍历DF A,但不知道如何。
这是我创建日期df(df B)的方式
Dates <- data.frame(WCSTART = seq(as.Date("2018-01-01"), by = "weeks", length.out = 52),
WCEND = seq(as.Date("2018-01-01"), by = "weeks", length.out = 52) + 6)
用户ID df(df A)是我使用readxl提取的excel文件中的静态列表。
因为我有8074个用户ID和52个日期。我希望创建一个包含419,848行的新df。
答案 0 :(得分:0)
使用merge()进行合并(也称为联接),而无需指定任何联接变量,所有内容将根据需要进行复制。
> DfA <- data.frame(id=c("001","002","003"))
> DfA
id
1 001
2 002
3 003
> DfB <- data.frame(dates=c("2018-01-01","2018-01-02","2018-01-03"))
> DfB
dates
1 2018-01-01
2 2018-01-02
3 2018-01-03
> output <- merge(DfA,DfB)
> output
id dates
1 001 2018-01-01
2 002 2018-01-01
3 003 2018-01-01
4 001 2018-01-02
5 002 2018-01-02
6 003 2018-01-02
7 001 2018-01-03
8 002 2018-01-03
9 003 2018-01-03