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