我有两个数据框。一个主数据帧和一个补充数据帧。 这两个数据框都包含“年份”和“密度”列。 “年份”仅以六个不同的值出现(2010、2012、2014、2017、2020、2023)。这些是收集数据的年份。 “密度”仅存在五个不同的值(1、2、3、4、5)。 我的补充数据框有 30 行长,因此“年份”和“密度”的每个组合仅出现一次。补充数据框有第三列,称为“干旱”,它对于主数据框中尚未包含的所有 30 个组合都有唯一值。 我现在希望在我的主数据框中具有“干旱”的独特值。然而,我的主数据框更长,并且“密度”和“年份”的每种组合都有多次。 我如何合并这些数据框,以便在主数据框的每一行中拥有与“年份”和“密度”的 30 种组合相对应的“干旱”的正确值?
我尝试了一个简单的
left_join
:
main_df <- main_df |>
left_join(supp_df, by = c("year", "density"))
当我这样做时,我的主数据框中不会出现名为“干旱”的新列。
如果您的数据如您文字描述的那样,那么您尝试的应该有效。您需要调查您的描述不足之处,以使此工作示例无效
library(tidyverse)
set.seed(42)
(main_table <- expand_grid(
year = c(2001, 2002),
density = c(1, 2)
) |>
sample_n(size = 10, replace = TRUE) |>
mutate(
other_facts_on_main_table = runif(10)
))
(supp_table <- expand_grid(
year = c(2001, 2002),
density = c(1, 2))|>
mutate(
drought = runif(4)
))
(fin_table <- left_join(main_table,
supp_table,
by = join_by(year, density)))