我有一个数据框,其中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”)
但它不起作用。我试图搜索,但可以看到这个特定问题的解决方案。几乎所有帖子都假设所有人都知道一个热编码。
请帮忙。
很容易与mltools
和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
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)