我有一个格式的数据框:
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
我怎样才能做到这一点。
最佳答案
我们可以使用values
的rle
属性删除相邻的重复项。
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/