【发布时间】:2022-01-04 19:36:15
【问题描述】:
我有一个包含英语和西班牙语版本问卷的数据集。问卷询问个人是否曾经接受过大量不同的诊断。每个变量采用prev_dx_major_depression 的形式表示英语数据,prev_dx_major_depression_span 表示西班牙语数据。
我想将两者组合成一个变量。我目前正在使用以下代码来实现此目的:
mutate(
prev_dx_major_depression = if_else(prev_dx_major_depression == 1 |
prev_dx_major_depression_span == 1,
1, 0
))
但是,我知道这对于如此大量的变量来说是非常低效的。我的预感是我需要使用mutate_at、recode、starts_with 和ends_with 的组合。但是,我有点卡在这一点上,不知道如何将相应的变量匹配在一起。
这是一些示例数据:
sample_data <-
structure(
list(
id = 1:5,
prev_dx_major_depression = c(0, 1, 1,
0, 0),
prev_dx_bipolar = c(0, 0, 0, 0, 0),
prev_dx_generalized_anxiety = c(1,
1, 0, 0, 0),
prev_dx_major_depression_span = c(NA, NA, NA, NA,
1),
prev_dx_bipolar_span = c(NA, NA, NA, NA, NA),
prev_dx_generalized_anxiety_span = c(NA,
NA, NA, NA, 1)
),
class = "data.frame",
row.names = c(NA,-5L)
)
【问题讨论】:
-
如果您可以使用
dput(x)提供示例数据集,将会很有帮助。 -
强烈同意。如果您可以提供一些具有 2 或 3 个变量对和大约 5 行数据的可重现数据,这将很好地说明问题并为我们提供一些工作。
dput(your_data[1:5, c("name_of_id_column", "prev_dx_major_depression", "prev_dx_major_depression_span", "example_column2", "example_column2_span")])会很完美。 -
感谢您的提示 - 我用一些示例数据更新了问题。