【发布时间】:2018-10-16 23:17:06
【问题描述】:
假设我在 R 中有以下数据表:
DT <- data.table::data.table(y=runif(1e4), x1=rnorm(1e4), x2=as.factor(sample(1:11,1e4,TRUE)))
由于 x2 取值 1 到 11,11 的最大二进制表示为 1011,所以 4 列就足够了,我想将 x2 转换为 4 二进制列,这样:
y x1 x2 b1 b2 b3 b4
0.17438022 0.1925023 11 1 0 1 1
0.34850700 1.0412363 3 0 0 1 1
如何在 R 中做到这一点?
【问题讨论】:
-
我可能会使用 sfsmisc 包中的
digitsBase()。例如,尝试t(digitsBase(1:11, 2, ndigits=4))。
标签: r binary data.table numeric