問題:傭工使用GDATA路徑規範使用R包時GDATA
讀取一個.xls爲R時失敗,我有一些.xls的,我想讀入R.我能夠做到這一點使用read.xls
在gdata
包,但幫助函數sheetNames
和sheetCount
失敗 - 我想了解我做錯了什麼,以便我可以使用它們,因爲它們將非常有用。
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
,輔助功能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'.
有點擺弄之後,我(很偶然)發現,使用完整路徑來解決這個問題:
fp2 <- file.path("/Users/ricardo/data/first.xls")
sheetcount(fp2)
[1] 13
+1謝謝。這確實解決了問題。作爲一般規則,人們應該選擇明確的途徑來避開這些陷阱? – ricardo 2012-07-31 19:59:24