【问题标题】:Merging of duplicate rows that have misspelled variables合并具有拼写错误变量的重复行
【发布时间】:2019-03-25 05:00:31
【问题描述】:

我只是在学习 R(和 dplyr),并且遇到了一个可能很简单的问题,尽管我花了数小时研究却没有答案。我在数据框中有两列,A(字符)和B(整数)。

由于原始数据(在 A 列中)拼写不佳,数据框包含额外的行,因此有 许多 行必须折叠成一行(同时也会折叠它们的整数值) (通过sum())列B)。

例如,可能有三行应该是一:

汽车......MPG

马自达............5

马自达...... 2

马自达…………1

应该是

汽车...........MPG

马自达............ 8

我正在使用dplyr,并试图找到我可以折叠具有相似字符(例如三个字母)的行并返回原始表格的方式。

任何想法或方向,最好使用基础 R 或 dplyr 将不胜感激。

【问题讨论】:

标签: r merge dplyr


【解决方案1】:

使用在注释末尾可重复显示的输入DF,使用soundex 或phonics package 中的其他函数之一为每个CAR 派生一个密钥,然后通过密钥进行汇总:

library(dplyr)
library(phonics)

DF %>% 
  group_by(key = soundex(CAR)) %>%
  summarize(CAR = toString(CAR), MPG = sum(MPG)) %>%
  ungroup %>%
  select(-key)

给予:

# A tibble: 1 x 2
  CAR                   MPG
  <chr>               <int>
1 Mazda, Mazzda, Mzda     8

注意

Lines <- "CAR MPG
Mazda 5
Mazzda 2
Mzda 1"
DF <- read.table(text = Lines, header = TRUE, as.is = TRUE, strip.white = TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-12
    • 2012-03-04
    • 2020-05-19
    • 2013-01-17
    • 2022-08-08
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多