У меня есть следующий список:
> list(c(3, 4, 5, 8), c(2, 6, 9, 10), c(1, 7))
[[1]]
[1] 3 4 5 8
[[2]]
[1] 2 6 9 10
[[3]]
[1] 1 7
Таким образом, мы можем сказать, что 3 принадлежит группе 1, 6 принадлежит группе 2, 7 принадлежит группе 3 и так далее. Мне нужно обратное отображение, т. Е. Для каждого номера, к которому я хочу иметь идентификатор группы, к которой он принадлежит (см. Ожидаемый результат):
> list(3, 2, 1, 1, 1, 2, 3, 1, 2, 2)
[[1]]
[1] 3
[[2]]
[1] 2
[[3]]
[1] 1
[[4]]
[1] 1
[[5]]
[1] 1
[[6]]
[1] 2
[[7]]
[1] 3
[[8]]
[1] 1
[[9]]
[1] 2
[[10]]
[1] 2
Я думал, что purrr::transpose
должен делать эту работу, но она точно не выполняет то, что я намереваюсь, не так ли? Как это можно сделать?
PS. В конечном счете, мне нужен просто вектор формы: 3 2 1 1 1 2 3 1 2 2
, но с учетом вышесказанного я думаю, что unlist()
достаточно для преобразования.