perl - 使用 R 包 gdata 时的路径规范

标签 perl r xls

问题:使用 gdata 将 .xls 读入 R 时帮助程序失败

我有一些我想读入 R 的 .xls。我可以使用 gdata 包中的 read.xls 来这样做,但是 helper函数 sheetNamessheetCount 失败 - 我想了解我做错了什么,以便我可以使用它们,因为它们非常有用。

require(gdata)
fp <- file.path('~/data/first.xls')

当我知道工作表的结构,并且能够将其指向我想要的数据表时,perl 脚本运行得很好:

firstdata <- read.xls(fp, sheet=2)

我有我的数据...在 firstdata 中。

然而,在同一张纸上,助手失败了。

我发现自己在 excel 中打开 .xls,弄清楚它们,然后使用 read.xls(fp, sheet=N) 加载到 R - 不是灾难,但也不是理想的。

特别是,当工作表不是我自己的,并且我需要有关它们的信息才能在 read.xls() 中设置 sheet=N 时,助手函数 sheetNamessheetCount 会非常有用,但是它们失败了——为什么?

sheetCount(fp)

> sheetNames(fp)
Error in read.table(tc, as.is = TRUE, header = FALSE) : 
  no lines available in input
In addition: Warning message:
running command ''/usr/bin/perl'     '~/R/wd/raRpackages/gdata/perl/sheetNames.pl' '~/data/first.xls'' had status 2 
Unable to open file '~/data/first.xls'.

和:

> sheetCount(fp)
Error in read.table(tc, as.is = TRUE, header = FALSE) :  
  no lines available in input
In addition: Warning message:
running command ''/usr/bin/perl'     '~/R/wd/raRpackages/gdata/perl/sheetCount.pl' '~/data/first.xls'' had status 2 
Unable to open file '~/data/first.xls'.

经过一番摆弄后,我(很偶然地)发现使用完整路径可以解决这个问题:

fp2 <- file.path("/Users/ricardo/data/first.xls")
sheetcount(fp2)
[1] 13

最佳答案

看起来 ~ 没有扩展到您的主目录。这种扩展通常由 shell 完成,因此 R 可能不会这样做,而 perl 肯定不会。

相反,在 Perl 程序中使用显式路径或 $HOME$ENV{HOME}

关于perl - 使用 R 包 gdata 时的路径规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737906/

相关文章:

excel - Powershell - 将 .XLS 文件转换为 .XLSX

perl - 如何告诉 DBD::CSV 使用逗号作为小数点分隔符?

perl - 删除 Perl 脚本中的 Windows 符号链接(symbolic link)?

php - 将一行 Perl 代码翻译成 PHP

r - 有什么方法可以根据条件使 Shiny 中的面板变灰?

sql - 如何使用R语言处理50GB的大型CSV文件?

css - 我如何找到我 Shiny 的应用程序的现有 css?

linux - 从文件计数出现的次数,grep 停止在一个字符处

ruby-on-rails - Rails 3 CSV 和 XLS 导出不提供文件扩展名

android - Java中如何判断Excel文件的格式?