我有一个格式的数据框:

site_domain <- c('ebay.com','facebook.com','facebook.com','ebay.com','ebay.com','auto.com','ebay.com','facebook.com','auto.com','ebay.com','facebook.com','facebook.com','ebay.com','facebook.com','auto.com','auto.com')
id <- c(1, 1, 1,2,2,3,3,3,3,4,4,4,5,5,5,5)
file0 <- as.data.frame(cbind(site_domain,id))

我对“id”进行了分组,以获取数据:
library(dplyr)
xx <- as.data.frame(file0 %>%
                      group_by(id) %>%
                      summarise(pages=paste(site_domain, collapse='_')))

数据如下:
1 ebay.com_facebook.com_facebook.com
2 ebay.com_ebay.com
3 auto.com_ebay.com_facebook.com_auto.com
4 ebay.com_facebook.com_facebook.com
5 ebay.com_facebook.com_auto.com_auto.com

但是我想删除相邻的重复项,所以我想像这样放出来:
1 ebay.com_facebook.com
2 ebay.com
3 auto.com_ebay.com_facebook.com_auto.com
4 ebay.com_facebook.com
5 ebay.com_facebook.com_auto.com

我怎样才能做到这一点。

最佳答案

我们可以使用valuesrle属性删除相邻的重复项。

library(dplyr)
file0 %>%
   group_by(id) %>%
   summarise(pages=paste(rle(as.character(site_domain))$values, collapse='_'))

#      id                                   pages
#    <fctr>                                   <chr>
#1      1                   ebay.com_facebook.com
#2      2                                ebay.com
#3      3 auto.com_ebay.com_facebook.com_auto.com
#4      4                   ebay.com_facebook.com
#5      5          ebay.com_facebook.com_auto.com

关于r - 删除r中的相邻重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41237257/

10-12 23:24