如何解决我想在 R 中同时重估多个变量
对于我的论文研究,我试图同时重估多个变量/列。我曾尝试使用以下函数,但这需要我分开指定每一列:
full_df$CR39
我有大约 65 个要重新编码的变量(名为 CR00、CR01、CR02...)。值“1”必须变为“0”,值“2”必须变为“1”。我还有一些名为 CR00FAM、CR01FAM、CR02FAM、...) 的变量,我不希望同时对其进行重估。
我尝试过使用“select”函数,但这似乎没有帮助:full_df%>% select(starts_with("DF"),-contains("FAM")).
有人知道可能的解决方案吗?我搜索了很多 stackoverflow 主题,但没有一个建议的解决方案适合我。
解决方法
我们可以遍历变量并执行此操作。根据正则表达式选择感兴趣的列,即这些列名称以 (^
) 'CR' 开头,后跟一个或多个数字 (\\d+
) 的末尾 ($
)字符串。使用 lapply
循环选择列并应用 revalue
,将输出分配回所选列数据集
nm1 <- grep("^CR\\d+$",names(full_df),value = TRUE)
full_df[nm1] <- lapply(full_df[nm1],function(x) revalue(x,c("1"="0","2" ="1"))
或者使用 dplyr
library(dplyr)
full_df <- full_df %>%
mutate(across(matches("^CR\\d+$"),~
revalue(.,c("1" = "0","2" = "1"))))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。