R表中的错误(stack(setNames(strsplit(data $ event,","),data $ row))[2:1]):

时间:2018-01-17 09:35:04

标签: r

数据就像这样:

View(df)

row    Events 
1       237,2,236,102,106,111,114,115,116,117,118,119,125
2       237,111,116
3       102,106,111,114,115

我得到了350万行,我想要的是创建新的二进制列,如下所示:

row   237  2  236  102  106  111  114  115  116  117 118  119 125  126
1     1    1   1    1    1    1    1    1    1    1   1    1   1   0
2     1    0   0    0    0    1    0    0    1    0   0    0   0   0  
3     0    0   0    1    1    1    1    1    0    0   0    0   0   0

我使用了与此处相同的解决方案:Create new columns with dummies based on values即:

Event  <- as.data.frame.matrix(table(stack(setNames(strsplit(df$event, ","), df$row))[2:1]))

它适用于小型数据集。但是有了350万行,我得到了错误:

  

表中的错误(stack(setNames(strsplit(data $ event,&#34;,&#34;),data $ row))[2:1]):
        尝试使用&gt; = 2 ^ 31个元素制作表格

我认为错误是因为我让桌子太大了。但我真的需要这些专栏。我怎样才能解决这个问题?

0 个答案:

没有答案