gpt4 book ai didi

R合并不重复列

转载 作者:行者123 更新时间:2023-12-03 03:23:49 24 4
gpt4 key购买 nike

我有两个数据框。例如

require('xlsx')
csvData <- read.csv("myData.csv")
xlsData <- read.xlsx("myData.xlsx")

csvData 看起来像这样:

Period  CPI     VIX
1 0.029 31.740
2 0.039 32.840
3 0.028 34.720
4 0.011 43.740
5 -0.003 35.310
6 0.013 26.090
7 0.032 28.420
8 0.022 45.080

xlsData 看起来像这样:

Period  CPI     DJIA
1 0.029 12176
2 0.039 10646
3 0.028 11407
4 0.011 9563
5 -0.003 10708
6 0.013 10776
7 0.032 9384
8 0.022 7774

当我合并这些数据时,CPI 数据会重复,并且标题上会添加后缀,这是有问题的(我的真实 df 中有更多列)。

mergedData <- merge(xlsData, csvData, by = "Period")

合并数据:

Period  CPI.x   VIX     CPI.y   DJIA
1 0.029 31.740 0.029 12176
2 0.039 32.840 0.039 10646
3 0.028 34.720 0.028 11407
4 0.011 43.740 0.011 9563
5 -0.003 35.310 -0.003 10708
6 0.013 26.090 0.013 10776
7 0.032 28.420 0.032 9384
8 0.022 45.080 0.022 7774

我想合并数据框而不重复具有相同名称的列。例如,我想要这样的输出:

Period  CPI     VIX     DJIA
1 0.029 31.740 12176
2 0.039 32.840 10646
3 0.028 34.720 11407
4 0.011 43.740 9563
5 -0.003 35.310 10708
6 0.013 26.090 10776
7 0.032 28.420 9384
8 0.022 45.080 7774

我不想使用额外的“by”参数,或者从其中一个 df 中删除列,因为两个 df 中有太多重复的列。我只是在寻找一种动态方法来在合并过程中删除这些重复的列。

谢谢!

最佳答案

如果公共(public)列的名称相同,您可以跳过 by 参数。

来自?合并:

By default the data frames are merged on the columns with names they both have, but separate specifications of the columns can be given by by.x and by.y.

记住这一点,以下内容应该有效(就像对示例数据所做的那样):

merge(csvData, xlsData)
# Period CPI VIX DJIA
# 1 1 0.029 31.74 12176
# 2 2 0.039 32.84 10646
# 3 3 0.028 34.72 11407
# 4 4 0.011 43.74 9563
# 5 5 -0.003 35.31 10708
# 6 6 0.013 26.09 10776
# 7 7 0.032 28.42 9384
# 8 8 0.022 45.08 7774

关于R合并不重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com