r语言 - 按模式选择列并立即替换因子



我有一个包含几列的数据框架。有些列在开始时具有固定的模式,例如q1a、q1a_30、q1a_60、q1a_90。我想调用具有相同乞讨模式的列,并替换它们的因子。

我可以在每个阶段分别执行,但是有什么方法可以一次执行吗?以下是我所做的:
df[,grepl("q1a", colnames(df))]
df$q1a<- recode_factor(df$q1a, `1` = "Yes", `2` = "No",`3` = "I don't know",`4` = "Maybe")

我们可以用tidyverse

library(dplyr)
df %>%
mutate(across(starts_with('q1a'), 
~ recode_factor(., `1` = "Yes", `2` = "No",
`3` = "I don't know",`4` = "Maybe")))

如果根据确定的模式确定要重新编码的列:

my_col <- grep("q1a", names(df))

您可以对这些列使用lapply来重新编码因子:

df[, my_col] <- lapply(df[, my_col], function(x) {
recode_factor(x, `1` = "Yes", `2` = "No", `3` = "I don't know", `4` = "Maybe")
})

如果这是你想要的,请告诉我。

相关内容

  • 没有找到相关文章