【发布时间】:2018-03-02 14:39:43
【问题描述】:
我有以下数据
ID v1 v2 v3 v4 v5
1 1 3 6 4
2 4 2
3 3 1 8 5
4 2 5 3 1
我可以重新排列数据,以便它会根据每个变量(v1 到 v5)中的值自动创建新列并分配二进制值(1 或 0)吗?
例如在第一行,我有 1、3、4 和 6 的值。R 可以自动创建 6 个虚拟变量以将值分配给相应的列,如下所示:
ID dummy1 dummy2 dummy3 dummy4 dummy5 dummy6
1 1 0 1 1 0 1
拥有这样的东西:
ID c1 c2 c3 c4 c5 c6 c7 c8
1 1 0 1 1 0 1 0 0
2 0 1 0 1 0 0 0 0
3 1 0 1 0 1 0 0 1
4 1 1 1 0 1 0 0 0
谢谢。
【问题讨论】:
-
melt然后dcast使用“data.table”的数据(或gather和spread使用“tidyverse”)。