データ分析メモと北欧生活

旧Untitled Note. データ分析、計量経済・統計とR、水産管理、英語勉強、海外生活などについて備忘録や自分の勉強のOutputの場所として

MENU

【R】RからStataのデータを書き出すときのエラー

Rでデータ分析してるのですが、時々「これStataの関数で走らせてみたい」とか「他の人はStataメインなのでデータ共有するのにstata形式で書きだしたい」というときがあります。

古いバージョン(Stata 12以前?)はforeignパッケージのwrite.dtaで書き出し、read.dtaで読み込みができたけど、13以降で少しフォーマットが変わったのかエラー吐くことも多いみたいです。

13以降の書き出しはhavenパッケージのwrite_dtaが良いようです。

haven::write_dta(df, "df.dta")

データの読み込みもreadstata13というパッケージもありますが、havenパッケージでよいのではないでしょうか。

# readstata13を使う場合
readstata13::readstata13("df.dta")

# havenを使う場合
haven::read_dta("df.dta")

エラー

haven::write_dtaで以下のようなエラーが出ました。

Writing failure: A provided name contains an illegal character.

調べてみると、変数名(列名)がstataで受け付けるタイプではなかったことが原因のようです。
特殊記号をアンダーバーに変えたり、大文字を小文字に直したりする必要がありますが、これは以下の関数で一発解決。

df_new = janitor::clean_names(df)

haven::write_dta(df_new, "df_new.dta")

dfのところは各自のデータフレームを入れてください。


参考URL
Writing failure: A provided name contains an illegal character. Error while saving R data into Stata format · Issue #531 · tidyverse/haven · GitHub