看板 R_Language 關於我們 聯絡資訊
我猜測你的 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分鐘 : 我相信有更好的寫法 只是我不知道如何寫 因此想請教各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.178.87 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1482764565.A.A9A.html
clansoda: 我的資料比較像是三個column有不同值 沒值則是NA 12/27 14:15
clansoda: 還是感謝wush大 12/27 14:15