数据就像这样:
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个元素制作表格
我认为错误是因为我让桌子太大了。但我真的需要这些专栏。我怎样才能解决这个问题?