我正在尝试重塑数据框,以便列中的每个唯一值都成为二进制列.
我已经提供了如下所示的数据:
df <- data.frame(id = c(1,1,2),
value = c(200,200,1000),
feature = c("A","B","C"))
print(df)
##id,value,feature
##1,200,A
##1,200,B
##2,1000,C
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其重塑为:
##trying to get here
##id,value,A,B,C
##1,200,1,1,0
##2,1000,0,0,1
Run Code Online (Sandbox Code Playgroud)
spread(df,id,feature) 失败,因为ids重复.
我想重塑数据以便于建模 - 我试图从功能的存在与否来预测价值.
但是,有一种方法可以tidyr::spread使用转换变量始终等于1.
library(dplyr)
library(tidyr)
mutate(df,v=1) %>%
spread(feature,v,fill=0)
id value A B C
1 1 200 1 1 0
2 2 1000 0 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |