【发布时间】:2017-01-05 21:38:45
【问题描述】:
干杯, 我有两个具有以下结构的数据框。
DF1:
Airlines HeadQ Date Cost_Index
American PHX 07-31-2016 220
American ATL 08-31-2016 150
American ATL 10-31-2016 150
Delta ATL 10-31-2016 180
American ATL 08-31-2017 200
第二个数据帧DF2的结构如下:
DF2:
Airlines HeadQ Date
American ATL 09-30-2016
Delta ATL 03-31-2017
现在查找数据帧 DF1 和 DF2,我想将 DF1 更改为以下数据帧。
DF1:
Airlines HeadQ Date Cost_Index
American PHX 07-31-2016 220
American ATL 08-31-2016 0
American ATL 10-31-2016 150
Delta ATL 10-31-2016 180
American ATL 08-31-2017 200
条件是,从 DF2 中查找 DF1 的 Airlines 和 HeadQ,如果 DF1$Date
我尝试过,但没有成功:
DF1$Cost_Index <- ifelse(DF1$Airlines == DF2$Airlines & DF1$HeadQ == DF2$HeadQ
& DF1$Date < DF2$Date, 0, DF1$Cost_Index)
Warning:
1: In DF1$Airlines == DF2$Airlines : longer object
length is not a multiple of shorter object length".
2: In<=.default(DF1$Date, DF2$Date) : longer object length is not a
multiple of shorter object length
DF1:
Airlines HeadQ Date Cost_Index
American PHX 07-31-2016 220
American ATL 08-31-2016 0
American ATL 10-31-2016 0
Delta ATL 10-31-2016 0
American ATL 08-31-2017 200
谁能指出我正确的方向?
注意:
str(DF1$Date): Date, format: "2016-10-31"
str(DF2$Date): Date, format: "2016-08-31"
【问题讨论】:
-
在提出与有日期的数据相关的问题时,最好向我们提供您的原始数据,以便我们知道您在处理什么,您能提供吗?或者至少
str(DF1) -
刚刚添加了数据框的结构:@Cyrus Mohammadian
-
您遇到错误了吗?如果没有,你上面的代码产生了什么?
-
它向我显示了以下警告:“警告消息:1:在 DF1$Airlines == DF2$Airlines 中:较长的对象长度不是较短对象长度的倍数”。 2:在
<=.default(DF1$Date, DF2$Date) 中:较长的对象长度不是较短对象长度的倍数 -
请不要添加无关标签。
标签: r datetime dataframe dplyr