井出草平の研究ノート

ID番号のないデータフレームにID列を作る方法[R]

IDの列を作る

仮想データフレームを作成。

d <- data.frame(V1=c(23, 45, 56), V2=c(45, 45, 67))

結果。

  V1 V2
1 23 45
2 45 45
3 56 67

ID列の挿入。

d$ID <- 1:nrow(d)

結果。

  V1 V2 ID
1 23 45  1
2 45 45  2
3 56 67  3

こちらで紹介されていたやり方。パッケージも不要で賢い方法だと思う。

stackoverflow.com

SPSSからの読み込みデータにIDを振る

気の利いていないデータの場合ID列を作っていない場合が多々ある。今、このエントリを書いている理由もこれである。
作っておけよ!と思うがないものは仕方ない。
SPSS形式のデータをRで読み込むにはforeignhavenの2つの方法がある。

library(foreign)
d <- read.spss("xxx.sav", to.data.frame=TRUE)
d$ID <- 1:nrow(d)

これはどうも失敗する。

library(haven)
d <- read_sav("xxx.sav")
d$ID <- 1:nrow(d)

こちらは成功する。havenパッケージを使うのが吉のようだ。その他のことを考えてもhavenパッケージの方がだいたい優れている。

本筋とは関係ないが、エンコードには気を付けること。Shift-JISで作成されているファイルにはencoding ="cp932"を忘れないように。

ides.hatenablog.com