3

問題: gdata を使用して .xls を R に読み込むとヘルパーが失敗する

R に読み込みたい .xls がいくつかあります。パッケージを使用read.xlsしてそれを行うことはできgdataますが、ヘルパーが機能sheetNamesしてsheetCount失敗します。それらは非常に便利です。

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()ヘルパーは機能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
4

1 に答える 1

3

~ホーム ディレクトリに展開されていないようです。通常、この展開はシェルによって行われるため、R はおそらく行わず、perl は間違いなく行いません。

代わりに、Perl プログラム内からの明示的なパス or$HOMEまたはを使用してください。$ENV{HOME}

于 2012-07-31T11:34:26.383 に答える