Управление списком компонентов - PullRequest
0 голосов
/ 16 октября 2019

Для создания новой комбинации списка имен. Я сгенерировал list со следующим R кодом:

names1 <- c("A", "B", "C")
lst <- lapply(1:length(names1), function(x) combn(names1, x))
lst

> list
[[1]]
     [,1] [,2] [,3]
[1,] "A"  "B"  "C" 

[[2]]
     [,1] [,2] [,3]
[1,] "A"  "A"  "B" 
[2,] "B"  "C"  "C" 

[[3]]
     [,1]
[1,] "A" 
[2,] "B" 
[3,] "C" 

Теперь я хотел бы превратить этот список в вектор со следующими 7 компонентами, как этот:

newlst <- c("A", "B", "C", "A, B", "A, C", "B, C", "A, B, C") 

Другими словами, я хотел бы объединить значения в каждом столбце в один компонент нового вектора. unlist(lst) не будет работать, так как он производит 12 отдельных As, B и C без каких-либо комбинаций. Мы ценим любые предложения.

1 Ответ

4 голосов
/ 16 октября 2019

Функция combn принимает функцию. Поэтому, если вы передадите toString и unlist, вы получите вывод, то есть

unlist(lapply(1:length(names1), function(x) combn(names1, x, toString)))
#[1] "A"       "B"       "C"       "A, B"    "A, C"    "B, C"    "A, B, C"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...