合并变量拼写错误的重复行

时间:2018-10-20 15:01:04

标签: r merge dplyr

我正在学习R(和dplyr),并且可能有一个简单的问题,尽管我花了数小时没有答案。我在数据帧中有两列A(字符)和B(整数)。

由于原始数据的拼写错误(在A列中),数据框包含其他行,因此有很多行必须折叠为单行(同时也折叠了它们的整数值) (通过sum()列中的B)。

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

  

CAR ............. MPG

  马自达...... 5

  马兹达……2

  Mzda .......... 1

应该是

  

CAR ........... MPG

  马自达..... 8

我正在使用dplyr,并试图找到一种方法来折叠具有相似字符(例如三个字母)的行,并通过管道返回到原始表中。

任何想法或指导,最好使用R或dplyr基。

1 个答案:

答案 0 :(得分:1)

使用末尾注释中可重复显示的输入DF,使用soundexphonics 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)