2016-04-28 3 views
-4

Ich habe über 200 data.frames in meiner globalen Umgebung. Ich möchte die erste Reihe von jedem data.frame entfernen, aber ich bin nicht sicher, wie.R: Entfernen Sie eine Zeile aus allen data.frames in der globalen Umgebung

Jede Hilfe wird geschätzt werden bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden.

+0

Bereitstellung Wie man mit einem solchen Durcheinander aufzuwickeln haben? Es wäre wahrscheinlich besser, diese data.frames in einer Liste zu behalten, anstatt Ihre globale Umgebung so zu belasten. Sie wären viel einfacher damit zu arbeiten. – MrFlick

+0

Siehe [Erstellen einer Liste von Datenrahmen] (http://stackoverflow.com/a/24376207/903061), um den Rat von MrFlick zu befolgen. – Gregor

Antwort

2

Dadurch werden alle Datenrahmen in Ihrer Umgebung aufgelistet, die erste Zeile wird entfernt und in einer Liste von Datenrahmen organisiert. Im Allgemeinen, bessere Praxis, um sie in einer Liste zu haben, so dass Sie leichter apply Funktionen über sie und auf sie zugreifen können.

df <- lapply(ls(), function(x) get(x)[-1,])

Update: gute Idee, zu überprüfen, ob Objekte in der Tat Datenrahmen sind und nur mit denen arbeiten. Zuerst erstellen wir einen logischen Vektor, der Datenrahmen auflistet, dann kombinieren sie diese zu einer Liste und entfernen die erste Zeile von jedem.

dfs = sapply(ls(), is.data.frame) 
lapply(mget(names(dfs)[dfs]), "[", -1, , drop = FALSE) 

dank Kommentare für meine Fehler zu finden und effizientere Lösungen

+2

sollten Sie wahrscheinlich eine Überprüfung hinzufügen, dass das Objekt ein Datenrahmen ist http://stackoverflow.com/questions/35387419/how-to-rbind-all-the-data-frames-in-your-working-environment-in-r/35387595 # 35387595 – user20650

Verwandte Themen