Mam dwie listy:
l1 = list(2, 3)
l2 = list(4)
Chcę trzecią listę:
list(2, 3, 4).
Jak mogę to zrobić w prosty sposób. Chociaż mogę to zrobić w pętli for, ale oczekuję odpowiedzi z jedną linijką lub może wbudowanej metody.
Właściwie to mam listę:
list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).
Po obliczeniu na list(2, 3)
i list(2, 4)
chcę list(2, 3, 4)
.
c(l1, l2)
? Jeśli spodziewasz się czegoś innego, czy mógłbyś trochę szczegółowo opisać i / lub udostępnić swoje listy i pożądane wyniki?list(2, 3)
alist(2, 4),
i chcelist(2, 3, 4)
, może również chciećunique(c(l1, l2))
Odpowiedzi:
c
można używać na listach (i nie tylko na wektorach):Jeśli masz listę list, możesz to zrobić (być może) wygodniej
do.call
np .:źródło
Możemy użyć
append
Ma również argumenty, aby wstawić element w określonym miejscu.
źródło
paste
ipaste0
mają łączyć ze sobą struny w większy ciąg. Czy możesz dokładniej opisać problem, ponieważ nie rozumiałem go dokładnie?c(l1, l2, l3)
,append()
jest tylko opakowaniem,c()
ale przyjmuje tylko dwa argumenty.Chciałem zrobić to samo, ale zachować listę jako zwykłą tablicę ciągów, więc napisałem nowy kod, który z tego, co czytałem, może nie być najbardziej wydajny, ale działał zgodnie z tym, co musiałem zrobić :
Po prostu tworzy nową listę i dodaje elementy z dwóch dostarczonych list, aby utworzyć jedną.
źródło