3

HOUSE列から数値を抽出して、「良い」と「悪い」のダミー変数を作成しようとしています。私がやりたいのは、HOUSE列の値が1,2,9の場合、家は「良い」であり、それ以外の場合は「悪い」です)

dputdata.frameオブジェクトの出力を貼り付けています。

## dput output assigned to the housetype variable

structure(list(Price = c(10L, 20L, 31L, 41L, 52L, 63L, 45L, 63L, 
64L, 45L), Location = structure(c(4L, 7L, 6L, 3L, 2L, 4L, 5L, 
1L, 6L, 8L), .Label = c("AK", "ATL", "BOS", "DC", "GA", "MA", 
"NYC", "PA"), class = "factor"), HOUSE = c(1L, 1L, 1L, 2L, 6L, 
7L, 8L, 9L, 10L, 11L)), .Names = c("Price", "Location", "HOUSE"
), class = "data.frame", row.names = c(NA, -10L))

各変数に他の情報が含まれるようにダミー変数を作成するにはどうすればよいですか?(価格と場所)

ありがとう!!!

4

1 に答える 1

6

あなたは簡単に行うことができます:

housetype$quality <- ifelse(housetype$HOUSE %in% c(1,2,9), "good", "bad")
housetype
#        Price Location HOUSE quality
# 1     10       DC     1    good
# 2     20      NYC     1    good
# 3     31       MA     1    good
# 4     41      BOS     2    good
# 5     52      ATL     6     bad
# 6     63       DC     7     bad
# 7     45       GA     8     bad
# 8     63       AK     9    good
# 9     64       MA    10     bad
# 10    45       PA    11     bad

文字のベクトル(「良い」または「悪い」)を作成する代わりに、フラグ変数、つまり論理型(TRUEまたはFALSE)のベクトルを作成することをお勧めします。使用するメモリが少なく、一般的に操作が簡単です。

housetype$is.good <- housetype$HOUSE %in% c(1,2,9)
housetype
#    Price Location HOUSE quality is.good
# 1     10       DC     1    good    TRUE
# 2     20      NYC     1    good    TRUE
# 3     31       MA     1    good    TRUE
# 4     41      BOS     2    good    TRUE
# 5     52      ATL     6     bad   FALSE
# 6     63       DC     7     bad   FALSE
# 7     45       GA     8     bad   FALSE
# 8     63       AK     9    good    TRUE
# 9     64       MA    10     bad   FALSE
# 10    45       PA    11     bad   FALSE
于 2012-09-11T02:51:40.817 に答える