【发布时间】:2022-01-13 13:57:08
【问题描述】:
我有两个不同的数据框“df1”和“df2”,有六个匹配的列名。我想扫描 df2 中与 df1 完全匹配的行,如果它们确实在 df1 的“检测”列中输入 1,如果没有在该列中输入 0。目前 df1 中的所有“检测”值都是 0,但我希望在两个数据帧之间完全匹配时将它们更改为 1。它看起来像这样:
df1
| site | ddate | ssegment | spp | vtype | tperiod | detect |
|---|---|---|---|---|---|---|
| BMA | 6/1/2021 | 1 | AMRO | Song | 1 | 0 |
| BMC | 6/15/2021 | 1 | WISN | Drum | 1 | 0 |
| BMA | 6/15/2021 | 1 | NOFL | Song | 2 | 0 |
| BMC | 6/29/2021 | 2 | AMRO | Call | 1 | 0 |
| BMA | 6/29/2021 | 2 | WISN | Call | 2 | 0 |
df2
| site | ddate | ssegment | spp | vtype | tperiod |
|---|---|---|---|---|---|
| BMA | 6/1/2021 | 1 | AMRO | Call | 1 |
| BMC | 6/15/2021 | 1 | WISN | Drum | 1 |
| BMA | 6/15/2021 | 1 | NOFL | Song | 2 |
| BMC | 6/29/2021 | 2 | AMRO | Drum | 1 |
| BMA | 6/29/2021 | 2 | WISN | Call | 2 |
扫描这些后,df1 现在看起来像:
df1
| site | ddate | ssegment | spp | vtype | tperiod | detect |
|---|---|---|---|---|---|---|
| BMA | 6/1/2021 | 1 | AMRO | Song | 1 | 0 |
| BMC | 6/15/2021 | 1 | WISN | Drum | 1 | 1 |
| BMA | 6/15/2021 | 1 | NOFL | Song | 2 | 1 |
| BMC | 6/29/2021 | 2 | AMRO | Call | 1 | 0 |
| BMA | 6/29/2021 | 2 | WISN | Call | 2 | 1 |
我在想 R 基函数“合并”可能有用,但我不太明白。感谢您的帮助!
【问题讨论】: