R:基于来自另一个 Dataframe 的数据创建列

1l5u6lss  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(81)

我有这样一个 Dataframe :

活动

| 日期|城市|事件|
| - ------|- ------|- ------|
| 2012年6月1日|洛杉矶|A类|
| 2014-05-02 2014-05-02|伦敦|B|
| 2017-03-15 2017-03-15 2017-03-15|巴黎|C级|
还有几个像这样的dataframe:

洛杉矶天气

| 日期|平均温度|
| - ------|- ------|
| 2012年6月1日|二十三|
| 2012-06-02 2012-06-02|二十二|
| - -----|- ---|
| 2017-12-31 - 2017- 12 - 31 - 2017-12 - 31 - 2017-12 - 21 - 21 - 21 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22|十五|

伦敦_天气

| 日期|平均温度|
| - ------|- ------|
| 2012年6月1日|十六|
| 2012-05-02 2012-05-02|二十一|
| - -----|- ---|
| 2017-12-31 - 2017- 12 - 31 - 2017-12 - 31 - 2017-12 - 21 - 21 - 21 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22 - 22|十个|
和类似的10多个城市。我想添加到事件列“Avtemp”的基础上的日期和条件(当城市==洛杉矶,我们从LA_weather数据,当伦敦从伦敦_weather等)。

事件(预期结果)

| 日期|城市|事件|平均温度|
| - ------|- ------|- ------|- ------|
| 2012年6月1日|洛杉矶|A类|二十三|
| 2014-05-02 2014-05-02|伦敦|B|二十一|
| 2017-03-15 2017-03-15 2017-03-15|巴黎|C级|十个|
对不起,也许这是一个基本的问题,但我是R的新手,有点困惑。
我可以合并所有城市的天气数据到一个大的数据框中,创建列“城市”。

y1aodyip

y1aodyip1#

我可以合并所有城市的天气数据到一个大的数据框架中,创建列“城市”。然后将其与事件合并。
这是一个很好的方法。下面是一个工作流程:

library(dplyr)

# add example data for Paris
Paris_weather <- read.table(
  text = "Date  Avtemp
          2012-06-01    20
          2012-06-02    20
          2017-03-15    14", 
  header = TRUE
)

cities <- unique(Events$City)

Weather <- cities |>
  paste0("_weather") |>
  mget() |>
  setNames(cities) |>
  bind_rows(.id = "City")

left_join(Events, Weather)
Date   City Event Avtemp
1 2012-06-01     LA     A     23
2 2014-05-02 London     B     NA
3 2017-03-15  Paris     C     14

(Note在您的示例数据中没有匹配的伦敦日期。)

相关问题