[問題] 使用sapply填入Dummy
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我的Data是電影的評比資料,有兩千萬筆,
其中電影的類別(genres)是屬於多重標籤,
為了分析各種類別的電影評分狀況,
我打算將所有電影建立Dummy Variable,
每一筆評比資料會根據他電影的標籤,在每個類別底下有 T/F boolean值。
資料像是這樣
movieId title genres Adventure Romance
"1" "Toy Story (1995)" "Adventure|Animation|Children|... "Truth" "False"
.................... Rating
.................... 4.5
目前我已經成功將所有類別全切出來,用的code如下
Genres <- unique(unlist(as.character(movies[,3]) %>% strsplit(split='[|]')))
接著我創造出空的Dummy
for(i in c(1:20)){
y=i+3
merge <- insertCol(as.matrix(merge),y,v=NA,cName=Genres[i])
}
接著我試著用lapply或sapply,想將boolean值根據merge[,3]比對填入,
使用的code如下:
for(i in c(1:20)){
y=i+3
merge[,y] <- sapply(merge[,3],grepl(Genres[i],merge[,3]))
}
但問題來了,他一直跟我說grepl並不是function,
嘗試過各種apply家族或是自定義的函數一樣有問題,
不曉得是哪裡出了問題?
另外我知道這方法本身很土法,好像有更好的產生Dummy的方式,
不過我還看不懂XD,所以想說先用這種直觀的方式練習一些packages,
再麻煩各位幫我解惑一下感謝。
[環境敘述]:
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
[關鍵字]:
lapply sapply dummy
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.236.39
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1489732720.A.401.html
→
03/17 19:20, , 1F
03/17 19:20, 1F
→
03/17 21:32, , 2F
03/17 21:32, 2F
→
03/17 21:56, , 3F
03/17 21:56, 3F
→
03/19 10:07, , 4F
03/19 10:07, 4F
→
03/19 10:07, , 5F
03/19 10:07, 5F
→
03/19 10:08, , 6F
03/19 10:08, 6F
→
03/19 10:08, , 7F
03/19 10:08, 7F
→
03/19 10:08, , 8F
03/19 10:08, 8F
→
03/19 10:08, , 9F
03/19 10:08, 9F
→
03/22 15:11, , 10F
03/22 15:11, 10F