[英]R Merge Several Dummy Variable Columns into 1
我正在嘗試合並汽車數據框(插入符號包)中的幾個列。 列“敞篷車,轎跑車,掀背車,轎車,旅行車”都有虛擬變量,我想創建一個名為type的列,其列名取決於車輛的類型。
library(caret)
data(cars)
head(cars)
colnames(cars)
以下是汽車數據框的列名:
[1] "Price" "Mileage" "Cylinder" "Doors" "Cruise"
[6] "Sound" "Leather" "Buick" "Cadillac" "Chevy"
[11] "Pontiac" "Saab" "Saturn" "convertible" "coupe"
[16] "hatchback" "sedan" "wagon"
如何將最后5個虛擬變量列合並/合並為1與相應的車輛類型?
任何見解或幫助將不勝感激!
max.col
的矢量化解決方案:
cars$type <- names(cars[14:18])[max.col(cars[14:18])]
作為替代解決方案,您可以使用match
:
cars$type <- names(cars[14:18])[apply(cars[14:18], 1, match, x = 1)]
ind <- apply(cars[,14:18],1,function(x) which(as.logical(x)))
cars$type <- colnames(cars[,14:18])[ind]
head(cars)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.