簡體   English   中英

R將幾個虛擬變量列合並為1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM