Re: [問題] 創造dummy variable

作者: Wush978 (拒看低質媒體)   2016-12-26 23:02:42
我猜測你的 data.frame 的值可能是從這樣的資料來的:
```
data <- data.frame(abc = c("2,5", "1", "1,2,3", "3", "2,4", "1,4,5")
```
如果是的話,也許你可以試試看
```
library(FeatureHashing)
hashed.model.matrix( ~ split(abc, ","), data )
```
不過這樣拿到的column有hashed過
※ 引述《clansoda (小笨)》之銘言:
: 各位好 單一變數創造dummy variable網路已經有很多答案了
: 我現在遇到的是要比對多個變數來創造dummy variable
: 假設我的data長下面這樣
: rowname a b c
: 1 2 5 NA
: 2 1 NA NA
: 3 1 2 3
: 4 3 NA NA
: 5 2 4 NA
: 6 1 4 5
: 希望能得到
: is.1 is.2 is.3 is.4 is.5
: 1
: FALSE TRUE FALSE FALSE FALSE
: 2
: TRUE FALSE FALSE FALSE FALSE
: 3
: TRUE TRUE TRUE FALSE FALSE
: 4
: FALSE TRUE FALSE TRUE FALSE
: 5
: FALSE TRUE FALSE TRUE FALSE
: 6 TRUE FALSE FALSE TRUE TRUE
: 6
: 這個例子是個簡單化的範本
: 一個row有可能分屬好幾個category 以第一個row舉例
: 他就屬於第二類跟第五類 第二個row則只屬於第一類
: 我現在的寫法是
: for (i in 1 : 5) {
: dat[, paste0("is.category", "i") := .SD[, 2 : 4] %in% "i" %>% any,
: by = 1 : nrow(dat)]
: }
: 目前我只會這樣寫 但是這個方法超慢 以我50萬個rows為例就要跑20分鐘
: 我相信有更好的寫法 只是我不知道如何寫 因此想請教各位
作者: clansoda (小笨)   2016-12-27 14:15:00
我的資料比較像是三個column有不同值 沒值則是NA還是感謝wush大

Links booklink

Contact Us: admin [ a t ] ucptt.com