首页 > 解决方案 > 是否有 R 代码用 0 替换空单元格,但保留填充单元格的原始值?

问题描述

如果变量 A == 0,我想用 0 替换变量 B 和变量 C 中的一些空单元格。如果变量 A 不等于 0,我希望变量 B 和变量 C 保持不变。我在下面创建了一个表格,并附上了一个屏幕截图来帮助解释我的意思。

变量 A 变量 B 变量 C
0
0
1 3 8

本质上,如果变量 A == 0,我希望变量 B == 0 和变量 C == 0,但如果变量 A 有值,那么我希望变量 A、变量 B 和变量 C 保持其原始值。

截图帮助解释:https ://i.stack.imgur.com/OihrX.png

标签: r

解决方案


使用dplyr

library(dplyr)    
df <- df %>%
    mutate(across(-1,  ~ as.numeric(replace(., . == '', 0))))
       

-输出

df
# A tibble: 3 x 3
#  Variable.A Variable.B Variable.C
#       <int>      <dbl>      <dbl>
#1          0          0          0
#2          0          0          0
#3          1          3          8

数据

df <- structure(list(Variable.A = c(0L, 0L, 1L), Variable.B = c("", 
"", "3"), Variable.C = c("", "", "8")), row.names = c(NA, -3L
), class = c("tbl_df", "tbl", "data.frame"))

推荐阅读