[解決済み] データフレーム内の多くの列のクラスをfactorからnumericに変更する。
2023-05-16 20:54:55
質問
多数の列を factor から numeric に変更する最も迅速で最良の方法は何でしょうか。
私は次のコードを使用しましたが、それは私のデータを再順序付けしているように見えます。
> head(stats[,1:2])
rk team
1 1 Washington Capitals*
2 2 San Jose Sharks*
3 3 Chicago Blackhawks*
4 4 Phoenix Coyotes*
5 5 New Jersey Devils*
6 6 Vancouver Canucks*
for(i in c(1,3:ncol(stats))) {
stats[,i] <- as.numeric(stats[,i])
}
> head(stats[,1:2])
rk team
1 2 Washington Capitals*
2 13 San Jose Sharks*
3 24 Chicago Blackhawks*
4 26 Phoenix Coyotes*
5 27 New Jersey Devils*
6 28 Vancouver Canucks*
のようにすべてのカラムに名前を付けることを除けば、最良の方法は何でしょうか?
df$colname <- as.numeric(ds$colname)
どのように解決するのですか?
Ramnath氏の回答に加えて、あなたが経験している動作は、以下の原因によるものです。
as.numeric(x)
が内部的な要素の数値表現を返すためです。
x
をRレベルで返す。因子のレベルである数値(内部表現ではなく)を保持したい場合は、文字に変換するために
as.character()
で文字に変換する必要があります。
あなたの
for
ループは
apply
を呼び出すのと同じくらい合理的で、コードの意図するところとして少し読みやすくなるかもしれません。この行を変更するだけです。
stats[,i] <- as.numeric(stats[,i])
を読む
stats[,i] <- as.numeric(as.character(stats[,i]))
これは FAQ 7.10 をR FAQに追加したものです。
HTH
関連
-
[解決済み] Rの%*%の意味 [重複]について
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] データフレーム内の列を名前でドロップする方法
-
[解決済み】サブセットされたデータフレーム内の未使用の因子レベルを削除する
-
[解決済み】データフレームから特定の列を抽出する
-
[解決済み】データフレームの文字列カラムを複数カラムに分割する
-
[解決済み】データフレームのカラムを数値型に変換する方法は?
-
[解決済み】データフレームから数値列のみを選択する方法
最新
-
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 実装 サイバーパンク風ボタン