R的merge怎么出现很多行重复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R的merge怎么出现很多行重复相关的知识,希望对你有一定的参考价值。

参考技术A Excel可以利用VBA实现快速、批量合并具有相同单元格的若干行。
软件版本:Office2007
方法如下:
1.如果上下单元格数值相同,就合并单元格:

2.Alt+F11,输入代码如下:
Sub m()
Application.DisplayAlerts = False '避免合并单元格时出现提示
For i = Range("A65536").End(3).Row To 2 Step -1 '从最后一行到倒数第二行循环
If Cells(i, "A") = Cells(i - 1, "A") Then '如果上下两个单元格值相同
Range("A" & i - 1 & ":A" & i).Merge '那么就合并这两个单元格
End If
Next i
Application.DisplayAlerts = True
End Sub

3.F5执行代码,结果如下:本回答被提问者采纳

在 R 中使用合并函数时重复行 - 但我不想要总和

【中文标题】在 R 中使用合并函数时重复行 - 但我不想要总和【英文标题】:Duplicate rows while using Merge function in R - but I dont want the sum 【发布时间】:2016-12-19 12:12:48 【问题描述】:

所以这是我的问题,我有大约 40 个数据集,所有 csv 文件只包含两列,(a) 日期和 (b) 价格(对于每个数据集,价格列被命名为其国家)。我使用合并函数如下,将所有数据合并为一个数据集,其中包含一个日期列和多个价格列。这是我使用的功能:

merged <- Reduce(function(x, y) merge(x, y, by="Date", all=TRUE), list(a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an))

发生的情况是,例如,我在日期列中有 3 个相同日期的值,但相应的国家/地区值被拆分。例如:

# Date          India China South Korea

# 01-Jan-2000   5445   NA   4445   NA
# 01-Jan-2000   NA    1234  NA     NA
# 01-Jan-2000   NA     NA   NA    5678

我真的想要

# 01-Jan-2000   5445  1234  4445  5678

我不知道如何得到这个,因为与该主题相关的其他问题要求对我显然不需要的值求和。这是一个简单的例子。不幸的是,我有大约 43 个国家从 2000 年 1 月到 2016 年 11 月的每日数据,全都搞砸了。任何解决此问题的帮助将不胜感激。

【问题讨论】:

欢迎来到 ***!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。 您可以聚合具有sumna.rm-参数设置为TRUE 的列。 See here for a generic example. 【参考方案1】:

我将使用rbind 附加所有数据帧,并使用spread() 重塑结果。由于合并取决于您开始使用的数据框。

可重现的例子:

library(dplyr)

a <- data.frame(date = Sys.Date()-1:10, cntry = "China", price=round(rnorm(10,20,5),2))
b <- data.frame(date = Sys.Date()-6:15, cntry = "Netherlands", price=round(rnorm(10,50,10),2))
c <- data.frame(date = Sys.Date()-11:20, cntry = "USA", price=round(rnorm(10,70,25),2))


all <- do.call(rbind, list(a,b,c))


all %>% group_by(date) %>% spread(cntry, price)

结果:

         date China Netherlands   USA
*      <date> <dbl>       <dbl> <dbl>
1  2016-11-29    NA          NA 78.75
2  2016-11-30    NA          NA 66.22
3  2016-12-01    NA          NA 86.04
4  2016-12-02    NA          NA 17.07
5  2016-12-03    NA          NA 75.72
6  2016-12-04    NA       46.90 39.57
7  2016-12-05    NA       51.80 65.11
8  2016-12-06    NA       57.50 96.36
9  2016-12-07    NA       46.42 46.93
10 2016-12-08    NA       45.71 57.63
11 2016-12-09 15.41       60.09    NA
12 2016-12-10 16.66       60.07    NA
13 2016-12-11 23.72       66.21    NA
14 2016-12-12 19.82       45.46    NA
15 2016-12-13 14.22       45.07    NA
16 2016-12-14 27.26          NA    NA
17 2016-12-15 20.08          NA    NA
18 2016-12-16 15.79          NA    NA
19 2016-12-17 17.66          NA    NA
20 2016-12-18 26.77          NA    NA

【讨论】:

以上是关于R的merge怎么出现很多行重复的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中使用合并函数时重复行 - 但我不想要总和

BigQuery MERGE 意外的行重复

使用R [重复]进行数据集成

查找重复行的索引 [重复]

查找重复行的索引 [重复]

原生JS我打算在把数据存在缓存数组中,再从数组中取出数据在另一个页面取出做表格,怎么不重复添加?