R语言如何基于两列条件填充数据框Size列空值且保留原有值
R语言数据框指定条件填充空值实现方案
需求说明
仅修改数据框A的Size列空值,保留已有值不变:当Box=6且Document=75时,对应行空的Size赋值为big。
实现方法
方法1:基础R实现(无需依赖第三方包)
直接按条件筛选目标行赋值即可:
# 筛选满足三个条件的行:Box为6、Document为75、Size为空,赋值为big A[A$Box == 6 & A$Document == 75 & A$Size == "", "Size"] <- "big"
方法2:dplyr实现(适配tidyverse工作流)
使用mutate+case_when逻辑,默认保留原有值:
library(dplyr) A <- A %>% mutate(Size = case_when( Box == 6 & Document == 75 & Size == "" ~ "big", .default = Size ))
运行结果验证
执行完上述任意一种方法后,输出数据框A的结果如下:
# A tibble: 7 × 3 Box Document Size <dbl> <dbl> <chr> 1 6 75 big 2 6 75 big 3 7 23 big 4 7 23 big 5 7 25 "" 6 8 13 big 7 8 13 big
完全符合需求:原有非空Size值保留,仅前两行符合条件的空值被填充为big,第五行不符合条件的空值保持不变。
内容的提问来源于stack exchange,提问作者Carmel Hilal
相关产品推荐
相关产品推荐

