Wydaje mi się, że jest to pytanie początkujące, ale wydaje mi się, że nie dysponuję odpowiednim słownictwem do skutecznego wyszukiwania w Google.Powtarzanie list przechowywanych w data.frame w R
Mam data.frame, final
, która zawiera listę clusters
, z których każda jest listą ciągów.
Chciałbym iterować nad listą ciągów w każdym klastrze: pętla for wewnątrz pętli for.
for (j in final$clusters){
for (i in final$clusters$`j`){
print final$clusters$`j`[i]
}
}
j
odpowiada na listy w clusters
i i
odpowiada pozycji w clusters[j]
starałem się to zrobić za pomocą długość każdego klastra, co myślałem że będzie coś length(final$clusters[1])
, ale to daje 1, a nie długość listy.
Również final$clusters[1]
daje $ '1', a w następnej linii, wszystkie ciągi w klastrze 1.
Dzięki.
EDIT: wyjście dput(str(final))
, zgodnie z wnioskiem:
List of 2
$ clusters :List of 1629
..$ 1 :
..$ 2 :
..$ 3 :
..$ 4 :
..$ 5 :
..$ 6 :
..$ 7 :
..$ 8 :
..$ 9 :
..$ 10 :
.. [list output truncated]
$ cluster_stats: num [1:1629, 1:6] 0.7 0.7 0.7 0.7 0.7 0.7 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:1629] "1" "2" "3" "4" ...
.. ..$ : chr [1:6] "min" "qu1" "median" "mean" ...
NULL
Tak więc 'rapply' działa tak, jak pan stwierdził, aby wydrukować listę list (dzięki za wyjaśnienie). Chciałbym jednak wydrukować tylko jedną z list na raz (w rzeczywistości miałem nadzieję użyć 'sink', aby wydrukować każdy z' clusterów 'do innego pliku), ale nie mogę uruchomić 'print' do pracy , używając pomocy @ pipo98 i twojej: 'dla (j w końcowych klastrach $) {rapply (końcowe $ clusters [j], f = print)}' zwraca wiele wierszy 'NULL'. – dd3
@ dd3 nie trzeba łączyć "rapply" z 'for'. 'Rapply' przejdzie recusrivly poprzez listę, aby uzyskać liście ... czy możesz przesłać dput' dput (str (final)) i dodać go do swojego pytania ... – agstudy
Problem polega na tym, że chcę zrobić to tylko dla jednego z podlist na raz. W twoim przykładzie chciałbym uzyskać tylko dane wyjściowe 'cluster1', zapiszę to w pliku, a następnie zrobić to samo dla innych klastrów, z których każdy zapisuje do innego pliku. Dodałem wybrane wyniki do mojego pytania. Dzięki za pomoc. – dd3