私はデータフレームを持っています。彼を呼びましょうbob
:
> head(bob)
phenotype exclusion
GSM399350 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399351 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399352 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399353 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399354 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399355 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
このデータ フレームの行を連結したいと思います (これは別の質問になります)。でも、見てください:
> class(bob$phenotype)
[1] "factor"
Bob
の列は因子です。たとえば、次のようになります。
> as.character(head(bob))
[1] "c(3, 3, 3, 6, 6, 6)" "c(3, 3, 3, 3, 3, 3)"
[3] "c(29, 29, 29, 30, 30, 30)"
私はこれを理解し始めていませんが、これらはbob
? 私が必要とするものではありません。
奇妙なことに、私はbob
手で列を通り抜けることができます。
bob$phenotype <- as.character(bob$phenotype)
これは正常に動作します。そして、いくつか入力した後、列が因子ではなく文字である data.frame を取得できます。だから私の質問は:どうすればこれを自動的に行うことができますか? 各列を手動で処理することなく、factor 列を持つ data.frame を character 列を持つ data.frame に変換するにはどうすればよいですか?
おまけの質問: 手動のアプローチが機能するのはなぜですか?