> rbind(z, "AL")
X.AL.
1 AL
> str(z)
'data.frame': 0 obs. of 0 variables
> str(rbind(z, "AL"))
'data.frame': 1 obs. of 1 variable:
$ X.AL.: Factor w/ 1 level "AL": 1
したがって、最初の項目が追加された後、最初の列は 1 つのレベルを持つ因子であり、入力が一連のレベルに含まれないため、rbind を実行できなくなります。これは、stringAsFactors を FALSE にoptions
設定した場合 (または、デフォルトを使用するのではなく、文字列を持つように注意してデータフレームを設定した場合) に機能するはずです。
> options(stringsAsFactors=FALSE)
> z <- data.frame()
> str(rbind(z, "AL"))
'data.frame': 1 obs. of 1 variable:
$ X.AL.: chr "AL"
> for (i in state.abb){z <- rbind(z, c(i))}
> str(z)
'data.frame': 50 obs. of 1 variable:
$ X.AL.: chr "AL" "AK" "AZ" "AR" ...