2

我有一个数据框,其中 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”)

但它不起作用。我也尝试搜索,但可以找到解决此特定问题的方法。几乎所有帖子都假设所有人都知道一种热编码。

请帮忙。

4

1 回答 1

1

轻松使用mltoolsdata.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

代码

set.seed(1701)
df <- data.frame(id = sample(1:10000, 500, replace = TRUE),
                 event_type = paste("event_type", sample(10:20, 500, replace = TRUE)))
dt <- as.data.table(df)
result <- one_hot(dt)
于 2018-10-21T01:40:19.767 回答