Ich habe eine Liste in R, die ungefähr 10.000 Elemente lang ist. Angenommen, ich möchte nur die Elemente 5, 7 und 9 auswählen. Ich bin mir nicht sicher, wie ich das ohne eine for-Schleife tun würde.
Ich möchte so etwas machen, mylist[[c(5,7,9]]
aber das funktioniert nicht. Ich habe die lapply
Funktion auch ausprobiert , konnte sie aber auch nicht zum Laufen bringen.
?"[["
: Der wichtigste Unterschied zwischen[
,[[
und$
ist , dass die[
mehr als ein Element auswählen kann , während die anderen beiden ein einzelnes Element auswählen.Antworten:
mylist[c(5,7,9)]
Sollte es tun.Sie möchten, dass die Unterlisten als Unterlisten der Ergebnisliste zurückgegeben werden. Sie verwenden dafür nicht
[[]]
(oder besser gesagt, die Funktion ist es[[
) - wie Dason in Kommentaren erwähnt,[[
greift er nach dem Element.quelle
b
enthält 10 Millionen Elemente.filter_bins
ist eine Liste, in der jedes Element ein Index ist. Um also nur Elementeb
mit demselben Index zu erhalten, musslapply(filter_bins, function(x) b[x, ])
b [x,] nur eine Teilmenge der Zeilen zurückgeben (wobei jedes Element von filter_bins ausgewählt wird). Ich hoffe, dies ist sinnvoll. Meine Frage ist, dass dies sehr langsam ist[[
. Aber wenn Sie mehrere Elemente extrahieren möchten, dann greifen Sie wirklich zu einer Unterliste und sollten einfach[