создание одного нового вектора из списка с 3 векторами, но исключение дублирующихся значений - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть список, содержащий несколько списков из трех векторов

Это печатает:

 [[1]]
[[1]][[1]]
[1] 1 2

[[1]][[2]]
[1] 1 3

[[1]][[3]]
[1] 2 3


[[2]]
[[2]][[1]]
[1]  4 5

[[2]][[2]]
[1]  5 6

[[2]][[3]]
[1] 4 6

Я хочу создать два вектора:

c(1, 2, 3), c(4, 5, 6)

У меня естьтакже пытался unique(unlist(x)), который работает, но теряет ссылки на позиции в списке.У меня есть несколько списков в моих списках, поэтому, когда я применяю unique(unlist(list(x))), он просто создает одну строку.Я хочу сохранить свой вектор c(1, 2, 3) отдельно от следующего списка c(4, 5, 6)

1 Ответ

0 голосов
/ 20 сентября 2018

Вы почти у цели.Вам просто нужно применить свое решение ко всем спискам отдельно.

lapply(lst, function(x) unique(unlist(x)))

#[[1]]
#[1] 1 2 3

#[[2]]
#[1] 4 5 6

данные

lst <- list(list(c(1, 2), c(1, 3), c(2, 3)), list(c(4,5), c(5, 6), c(4, 6)))
...