mam listy ciągów znaków, które zawierają losowe, takie jak:Wyodrębnianie unikalne numery z ciągiem w R
list=list()
list[1] = "djud7+dg[a]hs667"
list[2] = "7fd*hac11(5)"
list[3] = "2tu,g7gka5"
Chciałbym wiedzieć, które numery są obecne co najmniej raz (unique()
) na tej liście. Rozwiązanie moim przykładzie jest:
rozwiązanie: c(7,667,11,5,2)
Jeśli ktoś ma metodę, która nie bierze pod uwagę 11 jako „jedenastu”, ale jako „jeden plus jeden”, byłoby również użyteczne. Rozwiązaniem w takiej sytuacji może być:
rozwiązanie: c(7,6,1,5,2)
(Znalazłem ten artykuł na pokrewny temat: Extracting numbers from vectors of strings)
Trzy identyczne odpowiedzi w minutach względem siebie! : D – asb
'strsplit' jest wektorowy. Można/należy unikać używania pętli przez "niepublikowanie danych OP. – Arun
Użycie 'Reduce' z' union' (jest w zasadzie pętlą) również będzie bardzo czasochłonne na wielkich listach ('unique' i' unlist' będzie znacznie szybsze). – Arun