R の as.numeric 関数を使用して係数を数値に変換する

胡金庫 2023年1月30日
  1. as.numeric 関数を使用して、R の因数を数値に変換する
  2. as.character 関数と as.numeric 関数を組み合わせて、R で因数を数値に変換する
R の as.numeric 関数を使用して係数を数値に変換する

この記事では、R で因数を数値に変換する方法に関する複数の方法を示します。

as.numeric 関数を使用して、R の因数を数値に変換する

as 関数は通常、データ型を別の型に明示的に変換するために使用されます。変換プロセスは、R の用語では強制と呼ばれ、他のプログラミング言語に存在するキャストの概念を示します。関数 as.logical を呼び出すと、渡された引数を論理型に強制変換しようとします。同様に、as.characteras.numeric は、指定された引数を対応する型に変換します。論理型に変換された数値(ゼロを除く)は、負の値であっても、TRUE 値を表すことに注意してください。

> as.logical(31)
[1] TRUE

> as.logical(-31)
[1] TRUE

> as.character(31)
[1] "31"

> as.numeric(FALSE)
[1] 0

> as.numeric(TRUE)
[1] 1

R は、暗黙の型強制ルールも実装します。これは、異なる型で構成されるベクトルに対して算術演算を実行するときに必要です。次のコードスニペットに示されているように、アトミックベクトルに文字列が含まれている場合、他のすべての要素も文字列に変換されます。ベクトルに論理、数値、文字列の混合要素が含まれている場合、それらは文字列タイプに強制されます。最後に、ベクトルに数値と論理が含まれている場合、後者は数値に変換されます。

> v1 <- c(1, "two", 3, 4, 5, 6)

> typeof(v1)
[1] "character"

> v1 <- c(T, "two", 3, 1, F, T)

> typeof(v1)
[1] "character"

> v1 <- c(1, T, 3, F, 5, 6)

> typeof(v1)
[1] "double"

因子を数値に変換する場合、as.numeric は基になる整数表現のみを返すことに注意することが重要です。これはほとんど意味がなく、因子レベルに対応していません。unclass 関数を使用して、因子オブジェクトが内部にどのように格納されているかを調べることができます。f2 ファクターのインデックスは 2 1 2 3 であることに注意してください。これは通常、次のコードサンプルに示すように as.number 呼び出しを使用して返されます。

> f2 <- factor(c(3, 2, 3, 4))

> f2
[1] 3 2 3 4
Levels: 2 3 4

> f2.n <- as.numeric(f2)

> unclass(f2)
[1] 2 1 2 3
attr(,"levels")
[1] "2" "3" "4"

> f2.n
[1] 2 1 2 3

as.character 関数と as.numeric 関数を組み合わせて、R で因数を数値に変換する

因子レベルは、as.character 関数と as.numeric 関数を組み合わせることで整数型に変換できます。as.character は、因子レベルを文字列として返します。次に、as.numeric 関数を呼び出して、文字列を数値に強制変換できます。

> f2 <- factor(c(3, 2, 3, 4))

> f2.c <- as.character(f2)

> f2.c
[1] "3" "2" "3" "4"

> f2.c <- as.numeric(as.character(f2))

> f2.c
[1] 3 2 3 4
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - R Factor