【发布时间】:2021-05-05 14:31:33
【问题描述】:
我有 2 个数据框,我需要根据条件合并它们:
```
# Dataframe 1
plant1 <- c("FF", "DO")
loc1 <- c("MM", "KB")
df1 <- data.frame(plant1, loc1)
df1
plant1 loc1
1 FF MM
2 DO KB
# Dataframe 2
plant2 <- c("FF", "DO","DO")
loc2 <- c("MM", "KB","KB")
name <- c("name_1", "name_2","name_3")
frequency <- c(1, 2, 2)
df2 <- data.frame(plant2, loc2, name, frequency)
df2
plant2 loc2 name frequency
1 FF MM name_1 1
2 DO KB name_2 2
3 DO KB name_3 2
```
我需要将name 的值从df2 带到df1,仅适用于frequency == 1 的情况,
对于其余的情况,我需要设置特定的文本。
这是我需要得到的结果:
plant3 loc3 name3
1 FF MM name_1
2 DO KB multiple
我从最简单的代码开始,我需要在其中添加条件:
df1 %>% left_join(df2, by=c("plant1" = "plant2", "loc1" = "loc2" ))
当然,我可以通过简单的left_join 以“脏”的方式做到这一点,然后将name 列中的值替换为frequency !=1 并添加unique()。
还有更优雅的方式吗?
我正在检查该主题的讨论,但无法将其应用于我的案例:
【问题讨论】:
标签: r conditional-statements left-join