2015-10-29 13 views
8

Ich versuche, eine CSV-Datei mit read_csv zu lesen() von R.kann nicht Funktion „OlsonNames“ bei der Verwendung von read_csv mit readr Paket

library(readr) 
data <- read_csv("data/tmp.csv") 

tmp.csv ist unten angegeben finden.

"A", "B", "C", "D", "E", "F", "G", "H", "I" 
1,5,2015-07-31,5263,555,1,1,"0","1" 
2,5,2015-07-31,6064,625,1,1,"0","1" 
3,5,2015-07-31,8314,821,1,1,"0","1" 
4,5,2015-07-31,13995,1498,1,1,"0","1" 
5,5,2015-07-31,4822,559,1,1,"0","1" 
6,5,2015-07-31,5651,589,1,1,"0","1" 
7,5,2015-07-31,15344,1414,1,1,"0","1" 
8,5,2015-07-31,8492,833,1,1,"0","1" 
9,5,2015-07-31,8565,687,1,1,"0","1" 

Aber es erzeugt den folgenden Fehler.

Error in match(x, table, nomatch = 0L) : 
    could not find function "OlsonNames" 

Wie kann ich diesen Fehler beheben? Ich habe mit dem Fehler gegoogelt, aber keine relevante Lösung gefunden.


Nach einigem Graben, tritt der gleiche Fehler mit:

> locale() 
Error in match(x, table, nomatch = 0L) : 
    could not find function "OlsonNames" 

Es wie ein Fehler zu https://stat.ethz.ch/R-manual/R-devel/library/base/html/timezones.html Zusammenhang scheint

die R-Sitzung Neustart funktioniert nicht.

Wie soll ich den Fehler beheben? Muss ich einige Pakete installieren? Wenn ja, welche?

+2

Haben Sie es mit 'read.csv' versucht. Ich habe es mit 'read_csv' versucht und konnte keinen Fehler bekommen. Ich benutze readr_0.2.2 – akrun

+0

Ich nehme an, Sie beziehen sich auf 'readr :: read_csv'? ** Sag es **. –

+2

Ich denke, deine Sitzung ist durcheinander. "OlsonNames" scheint nicht verwandt zu sein, und selbst wenn dies der Fall ist, sollten Sie diese Funktion haben. Versuchen Sie, Ihre R-Sitzung neu zu starten. –

Antwort

3

Aktualisierung R scheint das Problem zu beheben.

Um zu R 3.2.2 für Ubuntu 14.04 (funktioniert nur für Ubuntu 14.04 Trusty, die deb-Pakete korrekt aktualisiert, wenn Sie 14,04 nicht verwenden) zu aktualisieren:

sudo echo 'deb http://cran.es.r-project.org/bin/linux/ubuntu trusty/' >> /etc/apt/sources.list 
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9 
gpg -a --export E084DAB9 | sudo apt-key add - 
sudo apt-get update 
sudo apt-get upgrade 

(Update-Anleitung von: http://ubuntuforums.org/showthread.php?t=2264580) dann in der neuesten Version von R:

> install.packages('readr') 
> library(readr) 
> locale() 
<locale> 
Numbers: 123,456.78 
Formats: %Y%.%m%.%d/%H:%M 
Timezone: UTC 
Encoding: UTF-8 
<date_names> 
Days: Sunday (Sun), Monday (Mon), Tuesday (Tue), Wednesday (Wed), Thursday 
     (Thu), Friday (Fri), Saturday (Sat) 
Months: January (Jan), February (Feb), March (Mar), April (Apr), May (May), 
     June (Jun), July (Jul), August (Aug), September (Sep), October 
     (Oct), November (Nov), December (Dec) 
AM/PM: AM/PM 

nun das Laden der read_csv Werke ohne die OlsonNames Fehler.


Vor meiner R aktualisiert wird, das ist meine R-Version:

> version 
       _       
platform  x86_64-pc-linux-gnu   
arch   x86_64      
os    linux-gnu     
system   x86_64, linux-gnu   
status          
major   3       
minor   0.2       
year   2013       
month   09       
day   25       
svn rev  63987      
language  R       
version.string R version 3.0.2 (2013-09-25) 
nickname  Frisbee Sailing 
+0

Obwohl diese Antwort funktioniert, wäre es nett, wenn jemand eine autoritative Antwort gibt, warum der Fehler auftritt und warum die Aktualisierung R funktioniert. – alvas

+0

Die Verwendung von read.csv() hat das Problem gelöst. Da ich Anfänger bin, kenne ich den genauen Grund nicht. – qmaruf

+0

Ich bin mir auch nicht sicher, ich denke, es ist eine alte Version von 'rearr.read.csv()' gegenüber der neueren Version von 'readr.read_csv()'. Ich bin mir nicht sicher, wie Rs 'readr'-Paket funktioniert. Jemand erfahrener sollte antworten, dass = ( – alvas

3

Lasst uns ein Paket sagen PkgFoo eine Funktion hat.

Wenn Sie sehen eine Meldung wie:

Could not find function Foo

bedeutet dies Pkg wurde erfolgreich nicht geladen (dh durch library/require Befehl) .Oder wenn Pkg erforderlich ist indrectly von Ihrem Paket (dh readr in diesem Fall) Es kann sein, dass Pkg nicht installiert ist, oder Ihre R-Installation ist irgendwie kaputt. Aus diesem Grund kann ein Update/Upgrade oder sogar ein Neustart des Computers hilfreich sein.

In diesem Fall ist die Funktion OlsonNames (versuchen Sie dies in R-Konsole eingeben: ??OlsonNames) ist ein Alias ​​zu base::Sys.timezone Funktion.Da es zu dem Basispaket gehört, welches sicherlich installiert wurde, ist es wahrscheinlich etwas Seltsames mit Ihrer R-Installation passiert. Andererseits kann eine frische R-Sitzung durch Neustarten oder Aktualisieren/Aktualisieren von R helfen.

Bonus: Diese oft von vielen übersehen wird, eine einfache Methode von R Entwickler gegeben, sich zu erhalten Sie die neueste Version von R auf Linux:

einen Spiegel Wählen Sie in der Nähe von Sie von hier: https://cran.r-project.org/mirrors.html Zum Beispiel, wähle ich einen Spiegel in Dänemark, dann lesen Sie die README.

Ich hatte auch großen Komfort, R Installation unter Windows mit installr Paket zu erhalten. Github: https://github.com/talgalili/installr/

+0

) stimme ich zu, dass die Aktualisierung von R oft das Problem auf Linux löst, aber es ist nichts falsch mit meiner Sitzung, wenn der OlsonNames-Fehler auftritt, weil das ist die erste R-Sitzung seit ich 'sudo apt-get install erstellt habe r-basis r-base-dev' und dann in R 'install.package ('readr')' auf dieser bestimmten Maschine, so dass es kein Fehler der Sitzung sein konnte. – alvas