簡體   English   中英

從許多類別中生成虛擬變量

[英]Generating a dummy variable from lots of categories

所以...我有一個帶有多個類別的變量的大型數據集。 我想創建將這些類別中的一些歸為一類的新變量。

我可以使用條件語句來做到這一點,但是鑒於類別的數量,我需要永遠永遠只走一行。 另外,雖然我的原始變量是數字,但值本身是隨機的,因此我不能使用邏輯或范圍語句。

如何基於許多特定值創建此條件變量?

我嘗試了以下方法,但沒有成功。 以下是我想歸為一類的不同類別的示例。

classes <- c(549,162,210,222,44,96,62,208,525,202,149,442,427,
      564,423,106,422,546,205,560,127,536,34,261,568,
      366,524,401,548,95,156,8,528, 430,527,556,203,554,523,
      501,530,55,252,585,19,540,71,204,502,504, 196,436,48,
      102,526,201,521,23,558,552,118,416,117,216,510,494,
      516,544,518)

因此,這對我來說似乎很直觀,但這是行不通的。

df$chem<- cbind(ifelse(df$class == classes ,1,0))

不用說,我是一個初學者,這可能並不難做到,但是我一直在尋找解決此特定問題的方法,但我似乎找不到。 我想念什么? 謝謝!

您正在尋找%in%不是==

例如

df$chem <- cbind(ifelse(df$class %in% classes ,1,0))

或使用邏輯到數字的轉換

df$chem <-  as.numeric(df$class %in% classes)

如果要為df$class 所有類別使用單獨的偽變量,則可以使用軟件包nnet (作為推薦軟件包提供)中的class.ind函數。

library(nnet)

class_ind <- class.ind(df$class)
# add if you want to combine with the original
df_ind <- do.call(cbind, list(df, class.ind(df$class))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM