Ich habe eine solche Liste (list1) jedes Element ist ein Datenrahmen, die aus einer Spalte bestehen.Fehler beim Ändern der Spaltennamen von Datenrahmen in einer Liste-R
Alle Spaltennamen sind gleich "x". Ich möchte Spaltennamen wie "x1", "x2", ...., "xn" ändern.
ich Code unten verwenden:
lapply(list1, function(x) setNames(x, "x",paste("x",1:seq_along(list1))))
Allerdings ist dieser Code nicht funktioniert. Warum funktioniert dieser Code nicht? Ich werde mich sehr für jede Hilfe freuen. Danke vielmals.
@ David Arenburg, herausgegeben ich Code wie unten (10 der elment Zahl in list1 ist):
lapply(list1, function(z) setNames(z,paste0("x",1:10)))
Dieser Code keine Fehler nicht geben, aber es ändert sich auch nicht, die Spalte names.The Spaltennamen Ars immer noch "x".
Ich bearbeitet das wie unten, jedoch funktioniert es immer noch nicht.
for(i in 1:10)
{
list2[[i]]<-setNames(data.frame(list1[[i]])[,1], paste0("x",1:10)[i])
}
Ich entfernte seq_along
für jetzt. Ich werde daran arbeiten, nachdem ich das gewünschte Ergebnis erzielt habe.
Jedes Element von list1 ist ein Datenrahmen und jeder Datenrahmen hat nur eine Spalte.
Dies ist nicht reproduzierbar, aber '1: seq_along (list1)' wird nicht ordnungsgemäß funktionieren. Versuchen Sie '1: seq_along (mtcars)'. Dies sollte nur 'seq_along (mtcars)' sein. Aber in deinem Fall ist es nicht klar, wie benutzt du 'x' hier, da du' list1' immer noch in 'seq_along' überträgst. Das ergibt für mich keinen Sinn. Außerdem ist Ihre Verwendung von 'setNames' unklar. Es sollte 2 Eingänge haben - nicht 3. Und wahrscheinlich sollte das "paste0" sein - nicht "einfügen", da Sie wahrscheinlich möchten, dass Ihre Namen synthetisch gültig sind. –
Ordnen Sie das Ergebnis einem Objekt zu? –
'setNames' wird nicht an Ort und Stelle geändert. Sie müssen es irgendwo zuweisen. Und wie bereits erwähnt, [das ist nicht reproduzierbar] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Und was ist mit "Seq_along" passiert? Und was meinst du mit "* bestehen aus einer Spalte *"? Wie viele Spalten gibt es? –