XLConnectにtblクラスのデータをつっこむとエラーになるから注意

XLConnectにdplyr等で操作した後のtblクラスのデータをつっこむとエラーが出る。
たとえば以下のようなコードを実行する。

smp <- loadWorkbook("sample.xlsx", create=TRUE)
smp["サンプル"] <- iris %>% group_by(Species) %>% tally()

こういうエラーが出る。

Error in doTryCatch(return(expr), name, parentenv, handler) :
Conversion to character for column Species failed! Check the class.

as.data.frameしてやれば解決する。

smp <- loadWorkbook("sample.xlsx", create=TRUE)
smp["サンプル"] <- iris %>% group_by(Species) %>% tally() %>% as.data.frame()

データフレームだと今までエラー出なかったのに!という時はだいたいこのtblが原因なので困ったらas.data.frameと覚えておくと良い。