Wie finde ich die Liste der angehängten Datensätze in R?

8

Gibt es eine Methode in R , um herauszufinden, welche Datensätze angehängt wurden? In meinem Arbeitsablauf benutze ich die Konsole und erstelle ein Skript. Ich probiere die Codezeilen in der Konsole aus und sobald ich mit den Ergebnissen zufrieden bin, füge ich sie einem Skript hinzu, damit ich die Ergebnisse später reproduzieren kann. Seit einer Woche spiele ich mit ein paar Datensätzen. Ich glaube, ich habe einige von ihnen im Laufe der Zeit angehängt und gelöst. Aber jetzt muss ich wissen, welche Datensätze aktuell angehängt sind, damit ich sie lösen kann.

    
Sam 28.02.2012, 15:38
quelle

4 Antworten

14
___ qstnhdr ___ Wie finde ich die Liste der angehängten Datensätze in R? ___ answer9489601 ___

Um dieses Problem zu vermeiden, ist es besser, nicht anhängen und trennen für Datensätze. Sie können auch auf das Problem stoßen, dass dieselbe Variable in 2 oder mehr angehängten Datensätzen (und möglicherweise in der globalen Umgebung) definiert ist und versehentlich die falsche gefunden wird. Es ist besser, das Argument data für Funktionen wie search() und help(search) zu verwenden und Funktionen wie %code% , %code% und %code% für andere Fälle zu verwenden. Dann wird R immer zuerst in dem angegebenen Dataset suchen und es anschließend nicht anhängen.

    
___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ answer39731288 ___

Um die Antwort in Übereinstimmung mit den Vorschlägen in den Kommentaren zu bringen, teile ich den Code in drei Teile. Der erste erzeugt einfach eine Liste mit angehängten Datensätzen. Die zweite Option entfernt eine einzelne Instanz angehängter Datasets. Die dritte behandelt Situationen, in denen ein Datensatz mehrfach angehängt wurde:

1. Liste der angehängten Datensätze ausgeben

Dieser Code erzeugt eine Liste mit angehängten Datensätzen, die der Benutzer untersuchen kann:

%code%

wenn Sie "character (0)" erhalten - im globalen env sind keine Datenobjekte angehängt

2. Automatisch "Cleanup" & amp; Alle angehängten Datensätze entfernen

Dieser Code wird die Liste der angefügten Datenmengen übernehmen und alle angehängten Objekte (Datasets) trennen. Es sollte Nicht-Objekte in Ruhe lassen. Es ist also ein ziemlich einfacher, sicherer und zuverlässiger Weg, um die globale Umwelt zu "säubern":

Hinweis: Dies funktioniert nur, wenn jedes Objekt nur einmal angehängt wird , andernfalls müssen Sie den Befehl erneut ausführen. Der nächste Teil der Antwort behandelt diesen Fall ebenfalls.

%Vor%

3. Alles loslösen, auch wenn Objekte mehrere Male angehängt sind

3 (a) Mehrere Anhänge Dieser Code löst alle angehängten Objekte (Datasets), selbst wenn sie mehrfach angehängt wurden. Die obige Operation kann dies nicht verarbeiten, weil R den Namen des Objekts nicht zweimal enthält, auch wenn es vom Benutzer zweimal angehängt wurde.

Also:

%Vor%

Und

%Vor%

Erzeugt die gleiche Ausgabe: [1] "data.df"

Auch wenn letzterer Fall benötigt wird, muss %code% dreimal aufgerufen werden, um die globale Umgebung zu löschen. Als Ergebnis müssen wir die Antwort aus Teil 2 in eine Schleife bringen.

3 (b) Ausgabe für Benutzer produzieren Darüber hinaus gibt die Bereinigung für jede erfolgreiche "detach ()" -Operation eine Liste von Dataset-Namen aus. Dadurch kann der Benutzer wissen, welche Datensätze und wie oft entfernt wurden.

Hinweis: Ich bin mir sicher, dass dies ein bisschen aufgeräumt werden könnte, aber dieses Stück Code macht die Arbeit zuverlässig.

%Vor%     
___ tag123detach ___ hilf uns dieses Wiki zu bearbeiten ___ qstntxt ___

Gibt es eine Methode in %code% , um herauszufinden, welche Datensätze angehängt wurden? In meinem Arbeitsablauf benutze ich die Konsole und erstelle ein Skript. Ich probiere die Codezeilen in der Konsole aus und sobald ich mit den Ergebnissen zufrieden bin, füge ich sie einem Skript hinzu, damit ich die Ergebnisse später reproduzieren kann. Seit einer Woche spiele ich mit ein paar Datensätzen. Ich glaube, ich habe einige von ihnen im Laufe der Zeit angehängt und gelöst. Aber jetzt muss ich wissen, welche Datensätze aktuell angehängt sind, damit ich sie lösen kann.

    
___ answer9485169 ___

Verwenden Sie %code% , um herauszufinden, welche Objekte angehängt sind.

Da dies auch über alle angehängten Pakete informiert, können Sie die Pakete mit einem regulären Ausdruck aus den Suchergebnissen entfernen:

Fügen Sie %code% :

hinzu %Vor%

Verwenden Sie jetzt %code% und eine Regexp:

%Vor%     
___
zipizip 28.02.2012, 15:51
quelle
10

Verwenden Sie search() , um herauszufinden, welche Objekte angehängt sind.

Da dies auch über alle angehängten Pakete informiert, können Sie die Pakete mit einem regulären Ausdruck aus den Suchergebnissen entfernen:

Fügen Sie mtcars :

hinzu %Vor%

Verwenden Sie jetzt search() und eine Regexp:

%Vor%     
Andrie 28.02.2012 15:53
quelle
4

Um dieses Problem zu vermeiden, ist es besser, nicht anhängen und trennen für Datensätze. Sie können auch auf das Problem stoßen, dass dieselbe Variable in 2 oder mehr angehängten Datensätzen (und möglicherweise in der globalen Umgebung) definiert ist und versehentlich die falsche gefunden wird. Es ist besser, das Argument data für Funktionen wie plot und lm zu verwenden und Funktionen wie with , within und transform für andere Fälle zu verwenden. Dann wird R immer zuerst in dem angegebenen Dataset suchen und es anschließend nicht anhängen.

    
Greg Snow 28.02.2012 20:56
quelle
3

Um die Antwort in Übereinstimmung mit den Vorschlägen in den Kommentaren zu bringen, teile ich den Code in drei Teile. Der erste erzeugt einfach eine Liste mit angehängten Datensätzen. Die zweite Option entfernt eine einzelne Instanz angehängter Datasets. Die dritte behandelt Situationen, in denen ein Datensatz mehrfach angehängt wurde:

1. Liste der angehängten Datensätze ausgeben

Dieser Code erzeugt eine Liste mit angehängten Datensätzen, die der Benutzer untersuchen kann:

intersect(search(), objects())

wenn Sie "character (0)" erhalten - im globalen env sind keine Datenobjekte angehängt

2. Automatisch "Cleanup" & amp; Alle angehängten Datensätze entfernen

Dieser Code wird die Liste der angefügten Datenmengen übernehmen und alle angehängten Objekte (Datasets) trennen. Es sollte Nicht-Objekte in Ruhe lassen. Es ist also ein ziemlich einfacher, sicherer und zuverlässiger Weg, um die globale Umwelt zu "säubern":

Hinweis: Dies funktioniert nur, wenn jedes Objekt nur einmal angehängt wird , andernfalls müssen Sie den Befehl erneut ausführen. Der nächste Teil der Antwort behandelt diesen Fall ebenfalls.

%Vor%

3. Alles loslösen, auch wenn Objekte mehrere Male angehängt sind

3 (a) Mehrere Anhänge Dieser Code löst alle angehängten Objekte (Datasets), selbst wenn sie mehrfach angehängt wurden. Die obige Operation kann dies nicht verarbeiten, weil R den Namen des Objekts nicht zweimal enthält, auch wenn es vom Benutzer zweimal angehängt wurde.

Also:

%Vor%

Und

%Vor%

Erzeugt die gleiche Ausgabe: [1] "data.df"

Auch wenn letzterer Fall benötigt wird, muss detach(data.df) dreimal aufgerufen werden, um die globale Umgebung zu löschen. Als Ergebnis müssen wir die Antwort aus Teil 2 in eine Schleife bringen.

3 (b) Ausgabe für Benutzer produzieren Darüber hinaus gibt die Bereinigung für jede erfolgreiche "detach ()" -Operation eine Liste von Dataset-Namen aus. Dadurch kann der Benutzer wissen, welche Datensätze und wie oft entfernt wurden.

Hinweis: Ich bin mir sicher, dass dies ein bisschen aufgeräumt werden könnte, aber dieses Stück Code macht die Arbeit zuverlässig.

%Vor%     
HoneyBuddha 27.09.2016 17:53
quelle

Tags und Links