将汽车近邻数据框转换为独热编码的实现方法
问题描述
我们基于mtcars数据集进行PCA分析,目的是找出PC空间中最为相似的汽车品牌(即近邻)。已完成近邻分析,得到如下数据框:其中car列为焦点车型,nn1和nn2列分别是该车型的第一、第二近邻车型。
tibble(car = c("Honda", "Toyota", "Mazda", "Fiat", "Lotus"), nn1 = c("Toyota", "Honda", "Toyota", "Lotus", "Mazda"), nn2 = c("Mazda", "Mazda", "Honda", "Honda", "Fiat")) # A tibble: 5 × 3 car nn1 nn2 <chr> <chr> <chr> 1 Honda Toyota Mazda 2 Toyota Honda Mazda 3 Mazda Toyota Honda 4 Fiat Lotus Honda 5 Lotus Mazda Fiat
转换需求
需要将上述数据转换为独热编码格式的数据框,规则如下:
- 行对应5个焦点汽车品牌
- 列对应所有可能的近邻品牌
- 若某品牌是焦点车型的近邻(nn1或nn2),则标记为1,否则标记为0
目标格式示例
格式一(带cars列的tibble)
# A tibble: 5 × 6 cars Honda Toyota Mazda Fiat Lotus <chr> <dbl> <dbl> <dbl> <dbl> <dbl> 1 Honda 0 1 1 0 0 2 Toyota 1 0 1 0 0 3 Mazda 1 1 0 0 0 4 Fiat 1 0 0 0 1 5 Lotus 0 0 1 1 0
格式二(以品牌为行名的矩阵/数据框)
Honda Toyota Mazda Fiat Lotus Honda 0 1 1 0 0 Toyota 1 0 1 0 0 Mazda 1 1 0 0 0 Fiat 1 0 0 0 1 Lotus 0 0 1 1 0
内容的提问来源于stack exchange,提问作者jnat
相关产品推荐
相关产品推荐

