enter code here我有一个SPSS数据,使用天堂包加载,我需要在数据心理恐惧症(心理恐惧症$tss 1,心理恐惧症$tss 2.)中的几列中将值0-4更改为4-0,创建一个新的列作为recodtss。此外,还有几个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")]问题是当前的输出是
心理恐惧症$tss01 01 1 4 1 NA 3 2 0 1心理恐惧症$Recodtss01 01 1 4 1 1 NA 3 2 0 1 2
有人能帮助理解为什么吗?:)
发布于 2022-07-25 14:18:35
如果您熟悉SPSS,https://strengejacke.github.io/sjmisc/reference/rec.html软件包可能会对您有所帮助。语法更精细,但安全且易于阅读。
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"))https://stackoverflow.com/questions/73067223
复制相似问题