【发布时间】:2022-06-30 00:03:34
【问题描述】:
我无法在我的数据框中根据不同列中的匹配日期生成新列:
df 看起来像这样:
ID date booked.date weather
1 2016-12-01 NA clouds
1 2016-12-02 2014-10-24 sunny
1 2016-12-03 NA overcast
2 2016-12-01 2015-12-24 clouds
2 2016-12-02 2016-12-01 sunny
2 2016-12-03 2016-12-01 overcast
2 2016-12-04 2016-01-13 sunny
date 表示入住公寓的日期,booking_date 告诉我们公寓的预订时间。
现在我想添加一个列booked_weather,如果此信息包含在df 中,则表示预订期间的天气。
输出将如下所示:
ID date booked.date weather booked_weather
1 2016-12-01 NA clouds NA
1 2016-12-02 2014-10-24 sunny NA
1 2016-12-03 NA overcast NA
2 2016-12-01 2015-12-24 clouds NA
2 2016-12-02 2016-12-01 sunny clouds
2 2016-12-03 2016-12-01 overcast clouds
2 2016-12-04 2016-01-13 sunny NA
请注意,有多个公寓 ID 的读数,因此相同天气的重复日期。
这是我尝试过的,并不能完全满足我的需要:
df %>%
mutate(weather_booked = case_when(
booked.date %in% date ~ weather[booked.date]
))
我明白为什么这不会给我正确的结果,但我不知道如何解决它。
【问题讨论】: