[問題] 創造dummy variable

看板R_Language作者 (小笨)時間9年前 (2016/12/26 15:57), 9年前編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/6 (看更多)
各位好 單一變數創造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.175.237.42 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1482739029.A.247.html

12/26 18:49, , 1F
看不懂,期望得到什麼結果....
12/26 18:49, 1F
※ 編輯: clansoda (36.238.38.77), 12/26/2016 19:32:59

12/26 19:33, , 2F
已經加上想要的結果了
12/26 19:33, 2F

12/26 22:04, , 3F
預期結果第一個row寫錯了?
12/26 22:04, 3F

12/27 15:16, , 4F
第一個是rowname 所以應該沒有錯
12/27 15:16, 4F
文章代碼(AID): #1OOCrL97 (R_Language)
文章代碼(AID): #1OOCrL97 (R_Language)