簡體   English   中英

在 R 方法中,在標記具有多個級別的因子時減少可能的錯誤

[英]In R methods to reduce possible error when labeling a factor with many levels

我有一個包含 75 個級別的變量,我想對其進行格式化。 但是,我發現如果不錯誤地格式化級別就很難做到這一點。

如您所知,使用其水平創建一個因子是這樣完成的:

df$f <- factor(df$f, levels=c('a','b','c'),
  labels=c('Treatment A','Treatment B','Treatment C'))

有沒有辦法對此進行不同的編碼,以便將 label 寫在關卡旁邊。 我正在尋找這種結構中的代碼:

'a' = 'Treatment A'
'b' = 'Treatment B'
'c' = 'Treatment C'

謝謝轉發

您可以為您的級別標簽對使用命名向量並轉換為如下因子:

foo <- c("a", "c", "b")

rec <- c(
  "a" = "Treatment A",
  "b" = "Treatment B",
  "c" = "Treatment C"
)

factor(foo, levels = names(rec), labels = rec)
#> [1] Treatment A Treatment C Treatment B
#> Levels: Treatment A Treatment B Treatment C

如果您有一長串等效項,通常將其作為單獨的文件包含在內是一個很好的工作流程,例如icdcodes.csv包含

code,descr
C00.0,Upper lip cancer
C00.1,Lower lip cancer
...

然后你可以這樣做:

codeinfo <- read.csv("icdcodes.csv")
factor(foo, levels = codeinfo$code, labels = codeinfo$descr

理想情況下,您甚至可以直接從 CDC 獲得 ICD10 描述(盡管實際上這可能不起作用,因為描述比您的要長,例如 C000 是“外上唇惡性腫瘤”,而不是“上唇癌”。 ..) [另請注意,CDC 文件在代碼中沒有點分隔符,C0000 而不是 C00.00]

icd_url <- "https://ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD10CM/2022/icd10cm_codes_2022.txt"
codeinfo <- read.fwf(icd_url, widths = c(8,100))
names(codeinfo) <- c("code", "descr")
codeinfo$code <- trimws(codeinfo$code)

暫無
暫無

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

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