Удалить дубликаты из списков внутри вектора в R - PullRequest
2 голосов
/ 10 января 2020

У меня есть вектор списков, подобный следующему примеру:

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]>

1 Ответ

2 голосов
/ 10 января 2020

Мы можем l oop над list с map и применить unique

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

В base R, это будет

z$x <- lapply(z$x, unique)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...