Der Versuch, eine Operation für jede Spalte in einem Datenrahmen durchzuführen. Nicht sicher, apply
oder for
zu verwenden (nicht sicher, wie die erste Spalte in apply
ignoriert wird).R for loop oder Anwendung auf Datentabellenspalten
Frage 1:
einfach jeden Namen druckt zweimal Ich finde heraus:
for (i in names(dt)){if(str_length(i) < 3) {print(i);print(i)}}
Die erste Name der Spalte ist das einzige mit einer String-Länge> 3 weshalb I benutzt das.
Ich habe versucht, mit:
for (i in dt$i){if(str_length(names(i)) < 3) {print(i);print(i)}}
for (i in dt$i){if(str_length(names(dt)) < 3) {print(i);print(i)}}
einfach jede Spalte zweimal drucken, aber es erzeugt nur einen leeren Wert.
Frage 2:
Was ich tatsächlich statt Druck zu tun zweimal; ist Reihenfolge jeder Spalte: order(-i)
??
Dann erstellen Sie eine Teilmenge: head(i, n=500)
??
Nicht sicher, ob dies ein zusätzlicher Schritt oder eine Erweiterung des obigen Schritts ist. Dann definiere das als data.frame; dt(i) < data.frame(head(i, n=500))
??
Dann speichern Sie diese Tabelle: write.csv(dt(i), "newfolder/i.csv", row.names = FALSE)
- Ich denke, das wird nur ständig eine Datei namens i.csv überschreiben, nicht sicher, wie ich die Datei basierend auf i nennen würde.
Vielleicht apply
ist ein besserer Ansatz, ich bin mir nicht sicher.
I einfachste Annäherung (so dass ich verstehe, was los ist) würde geschätzt werden. Ich habe nur 40 Spalten mit jeweils 50.000 Reihen, also sollte es nicht so langsam sein.
EDIT
Der Versuch, mehr klar zu sein, ich werde ein Beispiel hinzufügen:
Name Math Science PE
David 90 70 25
Tom 100 60 40
John 30 40 100
Ich möchte mit 3 csv ist mit dem ersten bis zum Ende aussehen wie:
Name Math
Tom 100
David 90
Im obigen Fall ist n = 2 für den Kopf. Auch die CSV könnte die anderen Spalten haben, aber sie sind nicht erforderlich.
'nicht sicher, wie ich die Datei basierend auf i nennen würde .' - benutze 'paste0 (" myFile ", ich," .csv ")' – zx8754
Dein Beitrag ist nicht sehr klar und vielleicht geschlossen als zu breit. Bitte fügen Sie Eingabedaten und erwartete Ausgabe hinzu. 'apply' ist nur eine verschönerte Version von' for loop', also liegt es an Ihnen, welche Sie verwenden. – zx8754
War meine Bearbeitung genug Informationen? –