0
data <- sqlQuery(connection, "SELECT col1, col2, col3 FROM table1")
d <- data.frame(data, stringsAsFactors = FALSE)
またはdata.frame()のstringsAsFactorsはどのように動作しますか?この例では
transform(d, col1 = as.character(col1), stringsAsFactors = FALSE)
d
まだ列のfactor
種類があります。
str(d)
'd': 1943 obs. of 4 variables:
$ col1: Factor w/ 5 levels ....
しかし、私が最初に述べるとき、
options(stringsAsFactors = FALSE)
これは機能しますが、グローバルに設定します。内部のステートメントは効果がないのはなぜですか?デビッドAhrenburgのコメントをエラボレーション
'自体data'ました'data.frame'を' factor 'として 'col1'と呼んでいます。 'stringsAsFactors = FALSE'で' col1'変数を 'd 'に別々に追加してください。 –
'データ 'とは何ですか?あなたの質問を改善するために、例[here](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を参照してください。私は、再現可能な例を作成している間は、data.frame()の* stringsAsFactorsがうまくいかないことを理解しているでしょう。* –
'?data.frame'を慎重に読んでください。すべての単一の引数は 'data.frame'に強制されます。したがって、引数のいずれかがすでに 'data.frame'の場合、何も変わりません。新しい文字列は 'stringsAsFactors'に従って強制されます。 'transform'の部分については、関数の引数*を参照*で変更しないので、結果を返すようにしてください。' d <-transform(d、col1 = as.character(col1)) 'ここの 'stringsAsFactors'引数は必要ありません)。 – nicola