Select 列按模式并立即替换因子
Select columns by pattern and replace factor at once
我有一个包含多列的数据框。一些列在开头有固定的模式,例如 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")
如果您根据确定的模式确定要重新编码的列:
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")
})
如果这是您的想法,请告诉我。
我们可以使用tidyverse
library(dplyr)
df %>%
mutate(across(starts_with('q1a'),
~ recode_factor(., `1` = "Yes", `2` = "No",
`3` = "I don't know",`4` = "Maybe")))
我有一个包含多列的数据框。一些列在开头有固定的模式,例如 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")
如果您根据确定的模式确定要重新编码的列:
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")
})
如果这是您的想法,请告诉我。
我们可以使用tidyverse
library(dplyr)
df %>%
mutate(across(starts_with('q1a'),
~ recode_factor(., `1` = "Yes", `2` = "No",
`3` = "I don't know",`4` = "Maybe")))