【问题标题】:How to Add Data from Another DF Into Another Data-Frame (r)如何将另一个 DF 中的数据添加到另一个数据帧中 (r)
【发布时间】:2020-03-26 16:53:32
【问题描述】:

我有 2 个数据框,一个有 1093 个观测值,其中包含 n 天时间跨度内每个州的数据,另一个数据框有 2 个变量的 50 个观测值:州名称和州人口。我的最终目标是在具有 1093 个观测值的数据框中创建一定百分比的州人口变量。所以我的计划是通过匹配州名将州人口添加到具有 1093 个观察值的数据框中。我尝试了这段代码:

df.state$population <- c(which(pop.states$State==df.state$state, pop.states$X2018.Population))

但是,这不起作用,因为长度存在差异,所以我的问题是如何将人口变量添加到该数据集中,或者是否有其他方法可以让我找到找到的变量的人均度量在具有 1093 个观测值的数据框中? 谢谢

【问题讨论】:

标签: r dataframe data-manipulation


【解决方案1】:

您想要做的称为“左连接”。试试这个:

library(tidyverse)

df <- df.state %>% left_join(pop.states, by = c("State" = "state"))

有关此类方法的更多信息和教程,请查看R for data science

【讨论】:

    【解决方案2】:

    对于基本的 R 方式,您可以使用 merge,对于像 Tim 的回答这样的左连接,您可以使用 all.x = TRUE 的附加参数

    df.state <- data.frame(
      state = c("New York", "Maine"),
      observations = c(1, 2)
    )
    
    pop.states <- data.frame(
      State = c("New York", "Maine"),
      X2018.Population = c(100, 200)
    )
    
    merge(df.state, pop.states, by.x = "state", by.y = "State")
    #>      state observations X2018.Population
    #> 1    Maine            2              200
    #> 2 New York            1              100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-22
      • 2022-10-25
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多