【问题标题】:Could not find function "OlsonNames" when using read_csv with readr package将 read_csv 与 readr 包一起使用时找不到函数“OlsonNames”
【发布时间】:2016-01-29 14:35:39
【问题描述】:

我正在尝试使用 R 的 read_csv() 读取 csv 文件。

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

tmp.csv 如下所示。

"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"

但它会产生以下错误。

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

我该如何解决这个错误?我已经使用该错误进行了谷歌搜索,但没有找到任何相关的解决方案。


经过一番挖掘,同样的错误发生在:

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

这似乎是与https://stat.ethz.ch/R-manual/R-devel/library/base/html/timezones.html 相关的错误

重新启动 R 会话不起作用。

我应该如何解决这个错误?我需要安装一些软件包吗?如果有,是哪个?

【问题讨论】:

  • 你试过read.csv。我尝试使用read_csv 并没有收到任何错误。我用 readr_0.2.2
  • 我假设您指的是readr::read_csv说出来
  • 我认为你的会话搞砸了。 OlsonNames 好像没有关系,就算有,你也应该有这个功能。尝试重新启动您的 R 会话。
  • find("read_csv") 的结果是什么?
  • @DavidArenburg 不,这是相关的:readr::read_csv 调用 locale,后者又调用 check_tz,后者使用 OlsonNames。是的,R 会话似乎搞砸了。

标签: r csv readr


【解决方案1】:

假设一个包Pkg 有一个函数Foo

当您看到如下消息时:

Could not find function Foo

这意味着Pkg 尚未成功加载(即通过library/require 命令)。或者如果您的包间接需要Pkg(即在这种情况下为readr),则可能是Pkg未安装,或者您的 R 安装以某种方式损坏。这就是更新/升级甚至重新启动计算机可能会有所帮助的原因。

在这种情况下,函数 OlsonNames(尝试在 R 控制台中输入:??OlsonNames)是 base::Sys.timezone 函数的别名。因为它属于基本包,肯定已经安装了,所以你的 R 安装很可能发生了一些奇怪的事情。再说一次,通过重新启动或更新/升级 R 来建立新的 R 会话可能会有所帮助。

奖励: 许多人经常忽略这一点,这是 R 开发人员自己提供的一种简单方法,用于在 Linux 上获取最新版本的 R

从这里选择您附近的镜子: https://cran.r-project.org/mirrors.html 例如,我在丹麦选择了一个镜像,然后阅读了 README。 http://mirrors.dotsrc.org/cran/bin/linux/ubuntu/README.html

我也很高兴使用installr 包在 Windows 上维护 R 安装。 Github:https://github.com/talgalili/installr/

【讨论】:

  • 我同意更新 R 通常可以解决 linux 上的问题,但是当 OlsonNames 错误发生时我的会话没有任何问题,因为这是自我创建 sudo apt-get install r-base r-base-dev 然后在 R 中创建的第一个 R 会话install.package('readr')在那台特定的机器上。所以这不可能是会话的错误。
【解决方案2】:

更新 R 似乎可以解决问题。

要为 Ubuntu 14.04 更新到 R 3.2.2仅适用于 Ubuntu 14.04 Trusty,如果您不使用 14.04,请正确更新 deb 包):

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

(更新说明来自:http://ubuntuforums.org/showthread.php?t=2264580) 然后在最新版本的 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

现在加载read_csv 不会出现OlsonNames 错误。


在更新我的 R 之前,这是我的 R 版本:

> 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  

【讨论】:

  • 虽然这个答案有效,但如果有人给出一个关于为什么会发生错误以及为什么更新 R 有效的权威答案会很好。
  • 使用 read.csv() 解决了这个问题。由于我是初学者,我不知道确切的原因。
  • 我也不确定,我认为这是readr.read.csv() 的旧版本与readr.read_csv() 的新版本。我不太确定 R 的 readr 包是如何工作的。更有经验的人应该回答这个=(
猜你喜欢
  • 1970-01-01
  • 2019-09-05
  • 2021-10-05
  • 1970-01-01
  • 2021-08-11
  • 2013-04-13
  • 2017-09-28
  • 2019-06-11
  • 2019-10-20
相关资源
最近更新 更多