[解決済み】data.frameのカラムを因子から文字に変換する
2022-03-25 21:11:55
質問
データフレームを持っています。仮に
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を取得することができます。そこで質問なのですが、これを自動的に行うにはどうしたらよいのでしょうか?どうすれば因子列を持つdata.frameを文字列を持つdata.frameに変換できるのでしょうか?
おまけの質問:なぜ手動のやり方が有効なのか?
どのように解決するのですか?
MattとDirkの続きです。 グローバルオプションを変更せずに既存のデータフレームを再作成したい場合は、applyステートメントで再作成することができます。
bob <- data.frame(lapply(bob, as.character), stringsAsFactors=FALSE)
これはすべての変数をクラス "文字" に変換するものです。 以下のMarekの解決策 .
@hadley さんのご指摘の通り、以下の方がより簡潔です。
bob[] <- lapply(bob, as.character)
どちらの場合も
lapply
はリストを出力しますが、R の不思議な特性のおかげで
[]
の data.frame クラスを保持します。
bob
を使用して data.frame に変換する必要がなくなります。
as.data.frame
という引数で
stringsAsFactors = FALSE
.
関連
-
[解決済み】二項演算子への非数値引数【非公開
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] 辞書のリストをpandasのDataFrameに変換する
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] 空のdata.frameを作成する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み] [Solved] data.frameで全てまたは一部のNA(欠損値)を含む行を削除する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】数学関数への非数値引数
-
[解決済み] テスト
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】ggplot boxplotでPosition-dodge警告?
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み】Rで結果の行数がベクトル長(arg 2)の倍数でない件
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み】データフレームのカラムを数値型に変換する方法は?