【发布时间】:2022-07-05 07:15:32
【问题描述】:
我的问题涉及到
library(haven)
library(labelled)
library(sjlabelled)
我要做的是在转换因子之前从 SPSS 中清理一些标记数据,以便我可以运行有意义的回归。这意味着要摆脱那些没有太大帮助的小包罗万象的类别。
步骤如下 第一步)用 0 替换 NA 并将其标记为“缺失” 第二步)找到“Other”的值,找到所有实例并将它们重新编码为零 第三步)按值对所有标签进行排序,并将“其他”视为未使用。
tdf2 <- as.data.frame(haven::read_sav(file.choose())
test2 <- tdf2[, 'AgeGender']
这就是我实际获得可再现性数据的方式
set.seed(123)
test2 <- sample(1:15, size = 3000, replace = TRUE)
add_labels(test2, labels = c("female 18-24" = 1, "female 25-34" =2, etc see below up to 15)
changetoNA <- which(test2 %in% sample(test2, 15))
test2[changetoNA] <- NA
# STEP ONE
test2[is.na(test2)] <- 0
val_label(test2,0) <- "missing"
# STEP TWO
z <- stack(attr(test2,"labels") # create a df of labels and values
y <- which(z == "Other", arr.ind = TRUE)[1] # look up the row index of the subset of Other
test2[test2 == y] <- 0 # change the values of that row index to zero
attributes(test2)$class # now take a look at the class
z # and the table z
$类 Have_labelled vctrs-vctr double
1 名 18-24 岁女性 2 名 25-34 岁女性 3 女性 35-44 4 女 45-54 5 位女性 55-64 6 位女性 65-74 7 位女性 75+ 8 男 18-24 9 男 25-34 10 男 35-44 11 男 45-54 12 男 55-64 13 男 65-74 14 男 75+ 15 其他 0 缺失
所以我想做的是对值标签进行排序,以便缺失在列表中占据其应有的位置,并完全删除“其他”。
# STEP THREE
drop_unused_value_labels(test2)
sort_val_labels(test2, according_to = "values")
什么都不做
【问题讨论】: