从 R 中向量中的列表中删除重复项

标签 r list tidyverse

我有一个列表向量,如下例所示:

library(tidyverse)

z <- tribble(
  ~x,
  c(10, 10, 64),
  c(22, 22),
  c(5, 9, 9),
  c(55, 55),
  c(76, 65)
)

我正在尝试减少每个列表以仅包含具有唯一值的案例。这是我正在寻找的输出:

y <- tribble(
  ~x,
  c(10, 64),
  c(22),
  c(5, 9),
  c(55),
  c(76, 65)
)

当然,我不能发布实际输出,必须将其作为本示例的新数据集写出来,否则它看起来像这样:

# A tibble: 5 x 1
  x        
  <list>   
1 <dbl [3]>
2 <dbl [2]>
3 <dbl [3]>
4 <dbl [2]>
5 <dbl [2]>

最佳答案

我们可以使用 map 遍历 list 并应用 unique

library(dplyr)
library(purrr)
z %>% 
   mutate(x = map(x, unique))

base R 中,它将是

z$x <- lapply(z$x, unique)

关于从 R 中向量中的列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59672750/

相关文章:

r - 汇总所选行

r - 如何对数据框列进行排名

r - 哪种提取方法最快?

r - 从 R 中的数据框创建交叉表

python - 如何在作为字典值的列表中添加元素,并且这些元素不会作为该字典的另一个键重复?

r - str_replace_all 按位置,应用于向量

java.lang.UnsatisfiedLinkError : Java cannot find my dll's?

r - 在两列中按数据子集

list - Lisp:List2 与 List1 的区别

r - 使用 broom 和 tidyverse 对不同的因变量运行回归