🐶
[R言語] データフレームの文字列を任意の数値に割り当てる
動物を数字に置き換えられる
たとえば,その日にみた動物を記録したデータフレームがある。
このデータフレームには,犬,犬,猫,犬,ネズミ...といったデータが蓄積されている。
動物のデータフレーム
animal <- as.data.frame(
a <- rep(c('Dog', 'Cat', 'Mouse'), times = c(3, 5, 10)))
names(animal) <- c("name")
head(animal)
結果
head(animal)
name
1 Dog
2 Dog
3 Dog
4 Cat
5 Cat
6 Cat
犬を0,猫を0.2,ネズミを1にしたい。
事情は色々ありますね。
変換用の変数を作ります。
# 変換用の変数作成
conv <- c(0, 0.2, 1)
names(conv) <- c('Dog', 'Cat', 'Mouse')
変数の中身はこんな感じ
conv
Dog Cat Mouse
0.0 0.2 1.0
変換します
animal$value <- conv[animal$name]
head(animal)
結果
head(animal)
name value
1 Dog 0.0
2 Dog 0.0
3 Dog 0.0
4 Cat 0.2
5 Cat 0.2
6 Cat 0.2
文字列に対して,任意の数値を入れました。
お察しの通り,数値じゃなくてもできます。
犬と猫はペット,ネズミはその他にしたい。
ネズミもペットになりえますが,ここはおさえて。
先ほどのconv
に,犬,猫,ネズミに対応するカテゴリー(pet, other)を振り分ける。
# 変換用の変数作成
conv <- c("pet", "pet", "other")
names(conv) <- c('Dog', 'Cat', 'Mouse')
結果
conv
Dog Cat Mouse
"pet" "pet" "other"
犬と猫はペットです
animal$category <- conv[animal$name]
head(animal)
結果
head(animal)
name value category
1 Dog 0.0 pet
2 Dog 0.0 pet
3 Dog 0.0 pet
4 Cat 0.2 pet
5 Cat 0.2 pet
6 Cat 0.2 pet
Rの基本中の基本だけど,知らない人も多いし汎用性は多いかと。
では良い日を!
Discussion