如何将数据变换结果覆盖写入原数据集的对应变量?
批量覆盖原变量重新编码的解决方案
直接使用dplyr::mutate()结合across()指定目标变量范围,配合sjmisc::rec()完成编码并覆盖原变量,代码如下:
dataset <- dataset %>% mutate(across(v10:v20, ~ rec(., rec = "1:2=1;3:5=2")))
原代码的问题说明
你之前的代码通过select(v10:v20)筛选出了仅包含目标变量的子数据集,处理后得到的是独立的小数据集,无法直接覆盖原完整数据集里的对应变量。而across()能在完整数据集的上下文里,精准对指定范围的变量执行编码操作,直接替换原变量的值,完全满足“不创建新变量、覆盖原数据”的需求。
如果需要保留原始数据备份,可先复制一份:
dataset_backup <- dataset
内容的提问来源于stack exchange,提问作者Maciej B.
相关产品推荐
相关产品推荐

