gpt4 book ai didi

r - 在 R 的每一列中查找并保留重复项

转载 作者:行者123 更新时间:2023-12-04 03:24:40 24 4
gpt4 key购买 nike

有什么方法可以使用 tidyverse 的 add_count() %>% filter() 或 distinct() 或看门人的 get_dupes() 来查找并保留每列的重复项。无需将不同列的项目相互比较,每个列都需要单独考虑。

data1 <-tribble(
~colA, ~colB,
"a", 1,
"b", 1,
"c", 2,
"c", 3
)

预期输出为

colA colB

c 1


最佳答案

您可以尝试使用 map_dfc,它将映射到列上并按列绑定(bind)输出返回数据框

library(tidyverse)
data1 %>%
map_dfc(~.x[duplicated(.x)])

# A tibble: 1 x 2
colA colB
<chr> <dbl>
1 c 1

然而,当每列由于回收而具有不同数量的重复项时,这将导致不需要的行为(当对要求它们具有相同长度的两个向量应用操作时 - 如列绑定(bind),R 会自动重复较短的那个,直到它足够长以匹配较长的那个)。

data1 <-tribble(
~colA, ~colB,
"a", 1,
"b", 1,
"c", 2,
"c", 3,
"d", 1,
)

data1 %>%
map_dfc( ~.x[duplicated(.x)])

# A tibble: 2 x 2
colA colB
<chr> <dbl>
1 c 1
2 c 1

这里colA已经被回收以匹配colB的长度。在这种情况下,您最好返回带有 map

的列表
data1  %>% 
map( ~.x[duplicated(.x)])
#output
$colA
[1] "c"

$colB
[1] 1 1

关于r - 在 R 的每一列中查找并保留重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67832932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com