3

问题:使用 gdata 将 .xls 读入 R 时,助手失败

我有一些我想读入 R 的 .xls。我可以read.xlsgdata包中使用它,但是帮助器功能sheetNamessheetCount失败 - 我想了解我做错了什么,以便我可以使用因为它们会非常有用。

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

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

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

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

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

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

特别是,当工作表不是我自己的,并且在我可以设置之前我需要有关它们的信息sheet=Nread.xls(),辅助函数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
4

1 回答 1

3

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

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

于 2012-07-31T11:34:26.383 回答