如何将数据帧转换为一个热编码

时间:2017-04-25 03:44:26

标签: r dataframe one-hot-encoding

我有一个数据框,其中id可以有多种事件类型

> head(eventtype, 10)
      id    event_type
1   6597 event_type 11
2   8011 event_type 15
3   2597 event_type 15
4   5022 event_type 15
5   5022 event_type 11
6   6852 event_type 11
7   6852 event_type 15
8   5611 event_type 15
9  14838 event_type 15
10 14838 event_type 11

我想将其转换为格式

   id event_type 1 event_type 2 event_type 3 ... event_type 50 
14838            0            0            0 ...             0 

在R中实现这一目标的最佳方法是什么?有没有包裹? 我尝试过使用假人:

new_my_data< - dummy.data.frame(eventtype,names = c(" event_type1"," event_type2"," event_type3"," event_type4"," event_type5")

但它不起作用。我试图搜索,但可以看到这个特定问题的解决方案。几乎所有帖子都假设所有人都知道一个热门编码。

请帮忙。

1 个答案:

答案 0 :(得分:0)

使用PZxmltools容易:

data.table

代码

> result
       id event_type_event_type 10 event_type_event_type 11 event_type_event_type 12 event_type_event_type 13 event_type_event_type 14
  1: 1274                        0                        0                        0                        0                        0
  2: 7668                        0                        0                        0                        0                        1
  3:  545                        1                        0                        0                        0                        0
  4: 5614                        0                        0                        0                        0                        0
  5: 9376                        0                        0                        0                        0                        0