[解決済み】データフレームのカラムを数値型に変換する方法は?
質問
データフレームのカラムを数値型に変換する方法は?
どのように解決するのですか?
まだ)誰もチェックマークを付けていないので、何か実用的な問題があるのだと思いますが、そのほとんどは、どのようなタイプのベクトルに変換したいのかが指定されていないことです。
numeric
. を適用することを提案します。
transform
という関数を使って、タスクを完了させることができます。
さて、これからある「変換異常」のデモンストレーションを行います。
# create dummy data.frame
d <- data.frame(char = letters[1:5],
fake_char = as.character(1:5),
fac = factor(1:5),
char_fac = factor(letters[1:5]),
num = 1:5, stringsAsFactors = FALSE)
を見てみましょう。
data.frame
> d
char fake_char fac char_fac num
1 a 1 1 a 1
2 b 2 2 b 2
3 c 3 3 c 3
4 d 4 4 d 4
5 e 5 5 e 5
で、実行させてください。
> sapply(d, mode)
char fake_char fac char_fac num
"character" "character" "numeric" "numeric" "numeric"
> sapply(d, class)
char fake_char fac char_fac num
"character" "character" "factor" "factor" "integer"
さて、あなたはおそらく次のように考えていることでしょう。 どこが異常なんだ? さて、私はRでかなり奇妙なことにぶつかったことがあります。 その しかし、特にベッドに入る前にこれを読むと、あなたを混乱させるかもしれません。
ここからが本題:最初の2列は
character
. 2をわざわざ
nd
一
fake_char
. この類似性を見てください
character
という変数は、Dirkが彼の返信で作成したものと同じです。これは実際には
numerical
ベクターに変換され
character
. 3
rd
および4
th
列は
factor
で、最後の1つは "purely"です。
numeric
.
を利用する場合
transform
関数を使用すると
fake_char
を
numeric
を削除することはできません。
char
変数そのものです。
> transform(d, char = as.numeric(char))
char fake_char fac char_fac num
1 NA 1 1 a 1
2 NA 2 2 b 2
3 NA 3 3 c 3
4 NA 4 4 d 4
5 NA 5 5 e 5
Warning message:
In eval(expr, envir, enclos) : NAs introduced by coercion
しかし、同じことを
fake_char
と
char_fac
運が良ければ、NAなしで済むかもしれません。
> transform(d, fake_char = as.numeric(fake_char),
char_fac = as.numeric(char_fac))
char fake_char fac char_fac num
1 a 1 1 1 1
2 b 2 2 2 2
3 c 3 3 3 3
4 d 4 4 4 4
5 e 5 5 5 5
を変換して保存すると
data.frame
をチェックし
mode
と
class
を、得ることができます。
> D <- transform(d, fake_char = as.numeric(fake_char),
char_fac = as.numeric(char_fac))
> sapply(D, mode)
char fake_char fac char_fac num
"character" "numeric" "numeric" "numeric" "numeric"
> sapply(D, class)
char fake_char fac char_fac num
"character" "numeric" "factor" "numeric" "integer"
というわけで、結論は
はい、変換できます。
character
ベクトルを
numeric
に変換できる場合のみです。
numeric
.
1つだけなら
character
要素に変換しようとすると、エラーが発生します。
numerical
を1つにする。
そして、私の主張を証明するために。
> err <- c(1, "b", 3, 4, "e")
> mode(err)
[1] "character"
> class(err)
[1] "character"
> char <- as.numeric(err)
Warning message:
NAs introduced by coercion
> char
[1] 1 NA 3 4 NA
では、お遊び(あるいは練習)として、これらのコマンドの出力を推測してみてください。
> fac <- as.factor(err)
> fac
???
> num <- as.numeric(fac)
> num
???
パトリック・バーンズによろしく! =)
関連
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] データフレーム列の名前によるドロップ
-
[解決済み] pandasのデータフレームのインデックスをカラムに変換する方法
-
[解決済み] リストをデータフレームに変換する
-
[解決済み】pandasでカラムの種類を変更する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】knitrのドキュメントでinstall.packagesが失敗する。"ミラーを設定せずにCRANを使おうとしている"
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み】match.fun(FUN)でのエラーについて)
-
[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】.External.graphics Rでエラーが発生しました。
-
[解決済み] R ggplot - エラー stat_bin は連続した x 変数を必要とします。
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み】data.frameのカラムを因子から文字に変換する