簡體   English   中英

如何從R中的文本值創建分類變量

[英]How to create categorical variables from text values in R

我有一個帶有分類變量Weather的數據集。 該變量有3個不同的文本值,即“Dry”,“Drizzle”和“Rain”。

我想創建另一個變量,我可以為這些變量分配數值。 例如, Dry將為1Drizzle將為2Rain將為3

作為輔助信息, weather變量將用於預測水系統中的阻塞,因此我將在某種線性回歸模型中使用它。

我們可以轉換為factor然后強制轉換為integer

as.integer(factor(df1$Weather, levels = c("Dry", "Drizzle", "Rain"))

為了記錄,這也可以做到這一點:

match(df1$Weather, c("Dry", "Drizzle", "Rain"))

這比@ akrun的解決方案略快(無論如何已經非常快):

x <- sample(c("Dry", "Drizzle", "Rain"), 1e6, rep=T)

microbenchmark::microbenchmark(
   as.integer(factor(x, levels = c("Dry", "Drizzle", "Rain"))),
   match(x, c("Dry", "Drizzle", "Rain"))
)

Unit: milliseconds
expr      min       lq       mean     median       
14.31158  18.13069  23.19702 20.98414 23.10840 
13.30326  16.00538  19.07544 17.59751 19.53679  

您可以轉換為有序因子並為其指定標簽:

data <- data.frame(Weather = c("Drizzle", "Rain", "Drizzle", "Rain", "Dry")) factor(data$Weather, levels = c("Dry", "Drizzle", "Rain"), labels = c(1, 2, 3), ordered=TRUE)

哪個將返回:

[1] 2 3 2 3 1 Levels: 1 < 2 < 3

您可能還想了解有關在線性回歸模型中使用有序因子的信息。 這個問題可能是一個好的開始: https//stats.stackexchange.com/questions/33413/continuous-dependent-variable-with-ordinal-independent-variable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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