Generiert einen Vektor der Anzahl der Elemente in jedem Listenelement

9

Ich habe eine Liste mit 98 Artikeln. Aber jedes Element enthält 0, 1, 2, 3, 4 oder 5 Zeichenketten.

Ich weiß, wie man die Länge der Liste bekommt und tatsächlich jemanden hat Ich habe die Frage vor gestellt und wurde abgelehnt, weil ich vermutlich so eine einfache Frage gestellt habe.

Aber ich möchte einen Vektor, der 98 Elemente lang ist, wobei jedes Element eine Ganzzahl von 0 bis 5 ist, die mir sagt, wie viele Zeichenketten in jedem Listenelement vorhanden sind. Ich habe erwartet, dass das Folgende funktioniert, aber es hat nicht funktioniert.

%Vor%

Aus meiner Frage werden Sie sehen, dass ich die Klassifikation von Listen und Items nicht wirklich kenne. Fühlen Sie sich frei, mich aufzurichten.

    
Farrel 17.01.2010, 02:43
quelle

3 Antworten

9

Farrel, ich folge nicht genau, da 'Gegenstand' kein R-Typ ist. Vielleicht haben Sie eine list der Länge 98 wo jedes Element ein Vektor der Zeichenkette ist?

In diesem Fall bedenken Sie Folgendes:

%Vor%

Also gibt es einen Vektor der Länge Ihrer Liste, der Ihnen sagt, wie viele Strings jedes Listenelement hat. Beachten Sie die letzte do.call(rbind, someList) , da wir eine Liste von lapply zurückbekommen haben.

Wenn Sie andererseits die Länge aller Zeichenfolgen an jeder Listenposition zählen möchten, ersetzen Sie das einfache length(x) durch eine neue Funktion, die die Zeichen zählt:

%Vor%

Wenn das nicht gewünscht wird, könnten Sie vielleicht ein paar Beispiel-Eingabedaten ausprobieren?

Bearbeiten: : Als Reaktion auf Ihre Kommentare haben Sie wahrscheinlich Folgendes gewünscht:

%Vor%

Beachten Sie, dass ich in length den Namen einer Funktion und nicht length() den (angezeigten) Text einer Funktion übergebe. Weil das leicht zu verwechseln ist, verwende ich einfach fast immer eine anonyme Funktion wie in meiner ersten Antwort.

Und ja, das kann auch mit nur sapply oder sogar mit einigen der **ply -Funktionen gemacht werden:

%Vor%     
Dirk Eddelbuettel 17.01.2010, 02:54
quelle
0

Der folgende Code akzeptiert eine Liste und gibt einen Längenvektor zurück:

%Vor%     
doug 17.01.2010 03:11
quelle
0

All dies scheint sehr kompliziert zu sein - es gibt eine Funktion, die genau das tut, wonach Sie gefragt haben:

%Vor%

Verwenden von Dirks-Beispieldaten:

%Vor%

gibt einen benannten Ganzzahlvektor zurück:

%Vor%     
Peer Wünsche 17.08.2017 14:46
quelle

Tags und Links