Ich habe kürzlich herausgefunden, dass Fehler aufgrund von Konflikten zwischen Paketen verursacht werden können, das heißt, zwei (oder mehr) Pakete können Funktionen ähnlich benannt haben. Ich weiß, dass der Code search()
die Liste der bestellten Pakete in der Weise erzeugt, wie R sie liest. Es gibt auch den Code args
, der die von R gelesene Funktion angibt. Was ich zuerst wissen möchte, ist, wie man erkennt, ob ein Fehler aufgrund von Konflikten zwischen Paketen erzeugt wird, und zweitens, wie man herausfindet, welche Pakete in Konflikt stehen. Wie können wir schließlich, nachdem die Konflikte entdeckt wurden, R zwingen, die Funktion aus einem der Pakete zu verwenden?Erkennen von Konflikten zwischen Paketen in R
Antwort
Wie @ Paul sagt, beim Anbringen (zB über library
Funktion) ein Paket können Sie erhalten:
> library("gdata", lib.loc="C:/Program Files/R/R-2.15.3/library")
gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
Attaching package: ‘gdata’
The following object(s) are masked from ‘package:stats’:
nobs
The following object(s) are masked from ‘package:utils’:
object.size
Wenn Sie erhalten "Die folgenden Objekte sind maskiert" bedeuten, dass Aufrufe an diese Funktion von R als Aufrufe an die Funktionen in dem neuen Paket, in meinem Beispiel gdata
gedacht werden.
Sie können dies über vermeiden:
> nobs
function (object, ...)
UseMethod("nobs")
<environment: namespace:gdata>
> stats::nobs
function (object, ...)
UseMethod("nobs")
<bytecode: 0x0000000008a92790>
<environment: namespace:stats
Hoffnung, die
Vielen Dank Michele. Genau das, was ich brauchte. – Vara
Wenn R ein neues Paket lädt, wird eine Warnung ausgegeben, wenn das neue Paket Funktionen enthält, die bereits in der Arbeitsumgebung vorhanden sind. Wenn Sie also beim Laden des Pakets aufpassen, können Sie sehen, ob es Konflikte gibt. Wenn es Konflikte gibt, können Sie R zwingen die Funktion von einem bestimmten Paket wie folgt zu verwenden:
package_name::function_name
hilft ich glaube, du bist für getAnywhere
suchen, die Sie alle Orte, ihr Argument existiert erzählen. Z.B. (in meinem aktuellen Belastungssatz):
Rgames> getAnywhere(logit)
2 differing objects matching ‘logit’ were found
in the following places
package:boot
package:pracma
namespace:boot
namespace:pracma
Use [] to view one of them
Danke für die Antwort Carl, ich wusste nichts über diesen Code. Ich denke jedoch, dass es hilfreich ist, wenn Sie vorher genau wissen, welches Argument Konflikte verursacht. – Vara
- 1. Beziehung zwischen Plotten von Paketen in R
- 2. Beheben von Bean-Konflikten in Paketen von Drittanbietern
- 3. Installieren von Paketen in R - Warnmeldungen
- 4. Einschließlich R-Skripte in R-Paketen
- 5. Mapping zwischen Oracle-Paketen und Java-Paketen
- 6. Erstellen von R-Paketen mit alternierendem GCC
- 7. Probleme bei der Installation von R-Paketen
- 8. Installieren von R-Paketen für alle Benutzer
- 9. Golang Sharing-Konfigurationen zwischen Paketen
- 10. Installieren von Caret und ggplot2 Paketen in R 3.2.5
- 11. Unterschied zwischen PAKETEN und FRAMES
- 12. Automatisches Erstellen von NSFileVersions-Konflikten
- 13. Gemeinsame Nutzung von Java-Paketen zwischen Modulen in IntelliJ?
- 14. Vererben von TargetDB zwischen verschiedenen Paketen in SSIS
- 15. Erkennen von Abhängigkeiten zwischen Namespaces in .NET
- 16. Auflösen von Git Svn Konflikten
- 17. Tailor erzwungene Umwandlungen von Konflikten
- 18. Auflösen von Git-Konflikten in SourceTree
- 19. Wie setzen wir beim Erstellen von R-Paketen konstante Variablen?
- 20. Fehler beim Erstellen von R-Paketen für Conda
- 21. Daten umfassen Beispiele bei der Entwicklung von R-Paketen
- 22. Quellenunterverzeichnisse innerhalb von R-Paketen mit roxygen2 verwenden
- 23. R nicht Installieren von Paketen auf CentOS 6.5
- 24. Installieren von R-Paketen. Include-Verzeichnis ist leer. Entwicklung Header
- 25. R 3.0.0 Update hat Lasten von 2.x Paketen inkompatibel
- 26. Zusammenführen von Konflikten von Upstream aktualisieren
- 27. Erkennen von Elementen in Werteliste in R in für Schleife
- 28. Unterschiede zwischen traditionellen Paketen com.day.cq.workflow und com.adobe.granite.workflow
- 29. Kann Module von übergeordneten Paketen in untergeordneten Paketen nicht importieren
- 30. Teilen Sie ein Stylus-Blatt zwischen Paketen
d. h. versuche 'Konflikte (Detail = TRUE)' –