首页 > 解决方案 > 根据具有不同大小的另一个数据框在数据框上添加新列

问题描述

我在 R 中有两个数据框。

第一个如下:

Species; Camera; Records
Species A; Cam A; 3
Species B; Cam A; 1
Species A; Cam B; 2
Species B;Cam B; 8

第二个是这样的:

Camera; total records
Cam A; 450
Cam B; 210

我想在第一个 df 中添加从第二个 df 中提取的总记录列,最后得到一个表,例如:

Species; Cameras; Records; Total Records
Species A; Cam A; 3; 450
Species B; Cam A; 1; 450
Species A; Cam B; 2; 210
Species B; Cam B, 8; 210

ETC...

我不认为这很难做到,但我找不到办法。

谢谢 !

标签: rdataframe

解决方案


有几种合并数据帧的方法可以完全按照您的要求进行。在这种情况下,来自 base R的merge命令非常简单:

df <- data.frame(Species = c("SpeciesA", "SpeciesB", "SpeciesA", "SpeciesB"), Camera = c("CamA", "CamA", "CamB", "CamB"), Records = c(3, 1, 2, 8))

df2 <- data.frame(Camera = c("CamA", "CamB"), TotalRecords = c(450, 210))

merge(df, df2)

Camera  Species Records TotalRecords
1   CamA SpeciesA       3          450
2   CamA SpeciesB       1          450
3   CamB SpeciesA       2          210
4   CamB SpeciesB       8          210

推荐阅读