"::"は入れたほうがいい
初記事なので、先日やらかした間抜けなミスでドツボにはまったというお話を。
こんなアホは自分だけだと思うけど、戒めとして投げておく。
自分は解析結果をいくつかのシートに分けてエクセル出力する時は「xlsx」パッケージを使用しているのだが、
Book <- createWorkbook(type="xlsx")
sheet <- createSheet(Result, sheet="Data" ) #データシートを作成
を実行したところ、
Error in createSheet(Res, sheet = "PeekHz") :
unused argument (sheet = "Data")
などと表示された。はて???「xlsx」パッケージは入ってるぞ???
で、ちょっと確認したらこういうことだった。
library(xlsx)
library(XLConnect)
XLConnect 0.2-15 by Mirai Solutions GmbH [aut],
Martin Studer [cre],
The Apache Software Foundation [ctb, cph] (Apache POI),
Graph Builder [ctb, cph] (Curvesapi Java library)
http://www.mirai-solutions.com
https://github.com/miraisolutions/xlconnect
次のパッケージを付け加えます: ‘XLConnect’
以下のオブジェクトは ‘package:xlsx’ からマスクされています:
createFreezePane, createSheet, createSplitPane, getCellStyle,
getSheets, loadWorkbook, removeSheet, saveWorkbook, setCellStyle,
setColumnWidth, setRowHeight
Warning message:
パッケージ ‘XLConnect’ はバージョン 3.6.2 の R の下で造られました
要するに「2種類以上のパッケージが同じ名前の機能持ってるから、後から入れたやつを優先するよ」という理由で「xlsx」パッケージのcreateSheetが使えなかったらしい。Excel関連のパッケージを追加したのが初めてだったから油断してた。
なので当然、こう書き換えれば動く。
sheet <- xlsx::createSheet(Result, sheet="Data" ) #データシートを作成
特にパッケージを増やしているとこれに引っ掛かる率が上がりそうなので、なるべく気を付けた方がいいなと身を以て実感した。