簡體   English   中英

在 R 的新變量列中創建新的分類變量級別

[英]Make new Levels of categorical variable in new Variable Column in R

我是 R 的新手,所以被困在這里.. 我有一個分類數據

levels(df$SO)
"SO1", "SO2","SO3","SO4","SO5","SO6",SO7",SO8"

我想將這些級別重新分類如下,但在同一數據框中將它們另存為新列 (df$newSO)。

levels(df$newSO)
"Unknown", "Known","Disease","Control"

這里Unknown由 SO1 和 SO2 水平組成, Known由 SO3 和 SO4 組成。 Disease含有 SO5、SO6 和 SO7。 Control包含 S8。 我正在使用以下

levels(df$SC)[levels(df$SC)%in%c("SOC1","SOC2")] <- "Unknown"

但它正在重命名同一列中的級別 (df$SO)。 在創建新級別的新列時,我希望上一列完好無損。 如何在 R 中做到這一點?

您可以嘗試以下操作

df$newSO <- ifelse(df$SO %in% c("SOC1", "SOC2"), "Unknown", "Known")

dplyrforcats解決方案:

library(dplyr)
library(forcats)

example <- data.frame(SO = factor(c("SO1", "SO2", "SO3", "SO4",
                                    "SO5", "SO6", "SO7", "SO8")))

result <- example %>%
  mutate(newSO = fct_collapse(SO,
                              Unknown = c("SO1", "SO2"),
                              Known = c("SO3", "SO4"),
                              Disease = c("SO5", "SO6", "SO7"),
                              Control = "SO8"))

暫無
暫無

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

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