基于表格条件替换值:编写子函数将偶数替换为NA
解决方案
一、基于条件替换表格中的值
针对etable格式的数据框t1,结合dplyr的across和条件判断就能实现精准数值替换,以下是两种常见场景的示例:
场景1:特定行的条件替换
比如把Valid N行里数值≤2的结果替换为NA:
t1_cond_mod <- t1 %>% mutate(across(-row_labels, ~if_else(row_labels == "c3|Valid N" & .x <= 2, NA_real_, .x)))
场景2:全局数值条件替换
比如把所有数值列中大于30的值替换为NA:
t1_global_mod <- t1 %>% mutate(across(-row_labels, ~if_else(.x > 30, NA_real_, .x)))
二、编写子函数替换偶数为NA
先定义判断并替换偶数的函数,再将其应用到表格的数值列:
定义替换函数
replace_even_with_na <- function(x) { # 兼容整数与整数型浮点数(如16.0)的偶数判断 ifelse((x %% 2 == 0) & (x == as.integer(x)), NA_real_, x) }
应用函数到表格
t1_even_to_na <- t1 %>% mutate(across(-row_labels, replace_even_with_na))
执行后,表格中所有整数形式的偶数(比如16、2、22这类值)都会被替换为NA。
内容的提问来源于stack exchange,提问作者codingr
相关产品推荐
相关产品推荐

