在 R 中合并多个数据帧时如何使用 suffixes 参数?

Posted

技术标签:

【中文标题】在 R 中合并多个数据帧时如何使用 suffixes 参数?【英文标题】:How do I use the suffixes argument when merging multiple dataframes in R? 【发布时间】:2022-01-21 03:18:30 【问题描述】:

两个数据集的第一次合并:

Agg_Bpm <- merge(agg_bpm_mean, agg_bpm_median, by = "Group.1", all = TRUE, suffixes = c(".mean",".median"))

输出:

      Group.1   x.mean x.median
1  2022484408 80.23686       76
2  2026352035 93.77631       95
3  2347167796 76.72279       73
4  4020332650 82.30058       83
5  4388161847 66.13300       62

现在我想合并另一个数据集:

> agg_bpm_max
      Group.1   x
1  2022484408 203
2  2026352035 125
3  2347167796 195
4  4020332650 191
5  4388161847 180

所以我试试这个:

Agg_Bpm <- merge(Agg_Bpm, agg_bpm_max, by = "Group.1", all = TRUE, suffixes = c(c(".mean",".median"),".max"))

可以合并,但是如何正确地为新列添加后缀??

> Agg_Bpm
      Group.1   x.mean x.median   x
1  2022484408 80.23686       76 203
2  2026352035 93.77631       95 125
3  2347167796 76.72279       73 195
4  4020332650 82.30058       83 191
5  4388161847 66.13300       62 180

【问题讨论】:

【参考方案1】:

你可以试试:

Agg_Bpm <- merge(Agg_Bpm, agg_bpm_max, by = "Group.1", all = TRUE, suffixes = c("",".max"))

请下次提供可重现的数据集。您可以使用函数dput(Agg_Bpm) 来做到这一点

【讨论】:

是的,我尝试了很多不同的方法,但无法正确标记它。我决定不使用 suffixes 参数,而是重命名 cols:names(Agg_Bpm) 【参考方案2】:

我决定一个简单的解决方案是不使用 suffixes 参数,而是在事后重命名列:

> names(Agg_Bpm) <- c("id","mean","median","max","sd")
> Agg_Bpm
           id     mean median max       sd
1  2022484408 80.23686     76 203 17.59559
2  2026352035 93.77631     95 125 12.61053
3  2347167796 76.72279     73 195 15.51571
4  4020332650 82.30058     83 191 15.91159
5  4388161847 66.13300     62 180 15.84728

【讨论】:

以上是关于在 R 中合并多个数据帧时如何使用 suffixes 参数?的主要内容,如果未能解决你的问题,请参考以下文章

尝试合并多个数据帧时,如何解决“ValueError: If using all scalar values, you must pass an index”

在将其组合到R中的一个数据帧时,在不同的数据帧中保留重复的行名[重复]

当我合并两个数据帧时,如何防止 Pandas 将我的整数转换为浮点数?

R中的合并命令

TypeError: unhashable type: 'numpy.ndarray' 合并来自 BigQuery 的 pandas 数据帧时

如何让 Spark SQL 导入没有“L”后缀的 Long?