【发布时间】:2020-07-31 09:32:44
【问题描述】:
我有两个数据框,我想将它们连接在一起,这样在按降序排列数据后,数据框df2 位于df 表的行之间。我还想在新添加的行中添加日期,以便每个日期都遵循日期的现有天数。
我的数据:
df
Product Date Value
1 A 2017-07-10 80
2 A 2017-07-01 150
3 B 2017-08-10 40
> df2
Product Month Value
1 A July 90
2 A July 50
3 B August 30
> result
Product Date Value
1 A 2017-07-01 150
2 A 2017-07-02 90
3 A 2017-07-10 80
4 A 2017-07-11 50
5 B 2017-08-10 40
6 B 2017-08-11 30
df <- data.frame(Product = c("A","A","B"),
Date = c("2017-07-10","2017-07-01","2017-08-10"),
Value =c(80,150,40))
df2 <- data.frame(Product = c("A","A","B"),
Month = c("July","July","August"),
Value =c(90,50,30))
不正确的解决方案:
df$Value[1] <- 500 ; df$Value[2] <- 50; df$Value[3] <- 400
Product Date Value
1 A 2017-07-01 50
2 A 2017-07-02 90
3 A 2017-07-10 500
4 A 2017-07-11 50
5 B 2017-08-10 400
6 B 2017-08-11 30
Should be:
Product Date Value
1 A 2017-07-01 50
2 A 2017-07-02 50
3 A 2017-07-10 500
4 A 2017-07-11 90
5 B 2017-08-10 400
6 B 2017-08-11 30
【问题讨论】:
-
df和df2中的行数总是相同? -
合并这些数据框很棘手,因为您有冲突的列。您想要的结果显示一列“日期”,但无法从 df2 中的“七月”到结果中的
2017-07-02。如果不是这样,我会简单地将它们与 cbind 结合起来,然后对它们进行排序。 -
如果
df2$Month[1]是August,预计日期是多少? -
@Darren Tsai 我预计第二天会在 df 日期之后发生
-
@Ronak Shah 是的,df 和 df2 中的行数始终相同。