问题:使用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'.
答案 0 :(得分:3)
看起来~
未扩展到您的主目录。这种扩展通常由shell完成,因此R可能不会这样做,perl绝对不会。
相反,请在Perl程序中使用显式路径或$HOME
或$ENV{HOME}
。