使用R包gdata时的PATH规范

时间:2012-07-31 10:17:42

标签: perl r xls

问题:使用gdata

将.xls读入R时助手失败

我有一些.xls,我想读入R.我可以使用read.xls包中的gdata来执行此操作,但帮助函数sheetNames和{ {1}}失败 - 我想了解我做错了什么,以便我可以使用它们,因为它们非常有用。

sheetCount

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

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

我的数据在firstdata <- read.xls(fp, sheet=2) 中。

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

我发现自己在excel中打开.xls,搞清楚,然后使用firstdata加载到R中 - 不是灾难,但它也不理想。

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

sheetCount

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'.

1 个答案:

答案 0 :(得分:3)

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

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