簡體   English   中英

如何從包含 NA 的 SPSS.sav 文件中重新編碼 R 中的值?

[英]How Recode values in R from SPSS .sav file which contain NA?

enter code here我有一個 SPSS 數據,使用 Haven package 加載,我需要將數據中稱為“tss”的幾列中的值 0-4 更改為 4-0 心理恐懼症(psychophobia$tss1,psychophobia$tss2.. .),創建一個新列作為記錄...此外,還有幾個 NAs 數據。

在此處輸入圖像描述

我試過這段代碼:

old <- 0:4
new <- c(4:0)
psychophobia$Recodtss01 <- psychophobia$tss01[psychophobia$tss01 %in% old] <-new[match(psychophobia$tss01,old,nomatch = "NA")]
psychophobia$Recodtss02 <- psychophobia$tss01[psychophobia$tss02 %in% old] <-new[match(psychophobia$tss02,old,nomatch = "NA")]

問題是當前的output是

心理恐懼症$tss01 1 4 1 1 NA NA 3 2 0 1

心理恐懼症$Recodtss01 1 4 1 1 NA 3 2 0 1 2

任何人都可以幫助理解為什么嗎?:)

If you are familiar with SPSS, the package https://strengejacke.github.io/sjmisc/reference/rec.html might help you. 語法更復雜,但安全且易於閱讀。

table(rec(psychophobia$Recodtss01, rec = "1=4;2=3;3=2;4=1;NA=9"), useNA = "always")

或與 dplyr

psychophobia %>%
   mutate(Recodetss01 = sjmisc::rec(Recodetss01, rec = "1=4;2=3;3=2;4=1;NA=9"))

暫無
暫無

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

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