簡體   English   中英

使用 R 重新編碼數值變量

[英]Using R to recode numeric variables

我正在處理一個數據集,我必須在其中重新編碼變量,以便從不和很少 =0,有時和總是為 1,不適用為 NA。 作為參考,代碼的編號方案是 1=從不,2=很少,3=有時,4=總是,5=不適用。 我應該在重命名之前更改數字變量還是將字符變量更改為數字變量? 我陷入了僵局,可以使用有關使用什么代碼的幫助。

問題

您有一個值為 1 到 5 的向量(或數據框列) x ,例如:

x <- c(1,2,3,4,5,4,3,2,1)

您想將 1 和 2 重新編碼為 0,將 3 和 4 重新編碼為 1,將 5 重新編碼為 NA。

基礎 R 中的解決方案

values <- list(`1` = 0, `2` = 0, `3` = 1, `4` = 1, `5` = NA)
x <- unname(unlist(values[x]))
[1]  0  0  1  1 NA  1  1  0  0

dplyr::recode() 的解決方案

values <- list(`1` = 0, `2` = 0, `3` = 1, `4` = 1, `5` = NA_real_)
x <- dplyr::recode(x, !!!values)
[1]  0  0  1  1 NA  1  1  0  0

暫無
暫無

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

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