删除R中同一行中的重复值
我正在处理一个大数据集,R中大约有30万行,我有一个我似乎无法解决的问题。我的数据当前如下所示:删除R中同一行中的重复值,r,duplicates,R,Duplicates,我正在处理一个大数据集,R中大约有30万行,我有一个我似乎无法解决的问题。我的数据当前如下所示: G01 G01 G02 G02 G04 C01 C01 B01 H01 H07 D07 H01 我的问题是如何删除行中的重复值,我想要得到的是: G01 G02 G02 G04 C01 B01 H01 H07 D07 尝试这种tidyverse方法。假设您的数据df是一个数据帧,您可以使用separate_rows()以分隔符空格打开值,然后删除重复的值。最后,您可以使用summary(),
G01 G01 G02
G02 G04
C01 C01 B01
H01 H07 D07 H01
我的问题是如何删除行中的重复值,我想要得到的是:
G01 G02
G02 G04
C01 B01
H01 H07 D07
尝试这种
tidyverse
方法。假设您的数据df
是一个数据帧,您可以使用separate_rows()
以分隔符空格打开值,然后删除重复的值。最后,您可以使用summary()
,以获得预期的结果。代码如下:
library(dplyr)
library(tidyr)
#Code
newdf <- df %>% mutate(id=row_number()) %>%
pivot_longer(-id) %>%
separate_rows(value,sep=' ') %>%
group_by(id) %>%
filter(!duplicated(value)) %>%
summarise(value=paste0(value,collapse = ' ')) %>% ungroup() %>%
select(-id)
库(dplyr)
图书馆(tidyr)
#代码
newdf%变异(id=row_number())%>%
枢轴长度(-id)%>%
单独的_行(值,sep='')%>%
分组依据(id)%>%
筛选器(!重复(值))%>%
摘要(值=粘贴0(值,折叠=“”))%%>%ungroup()%%>%
选择(-id)
输出:
# A tibble: 4 x 1
value
<chr>
1 G01 G02
2 G02 G04
3 C01 B01
4 H01 H07 D07
#一个tible:4 x 1
价值
1 G01 G02
2 G02 G04
3 C01 B01
4 H01 H07 D07
使用的一些数据:
#Data
df <- structure(list(V1 = c("G01 G01 G02", "G02 G04", "C01 C01 B01",
"H01 H07 D07 H01")), class = "data.frame", row.names = c(NA,
-4L))
#数据
df您可以使用unique
删除重复的值
数据:
lapply(x, unique)
#[[1]]
#[1] "G01" "G02"
#
#[[2]]
#[1] "G02" "G04"
#
#[[3]]
#[1] "C01" "B01"
#
#[[4]]
#[1] "H01" "H07" "D07"
x <- list(c("G01","G01","G02"), c("G02","G04"), c("C01","C01","B01"),
c("H01","H07","D07","H01"))
x <- c("G01 G01 G02", "G02 G04", "C01 C01 B01", "H01 H07 D07 H01")
sapply(strsplit(x, " "), function(y) paste(unique(y), collapse = " "))
#[1] "G01 G02" "G02 G04" "C01 B01" "H01 H07 D07"