You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用dplyr判断数据值是否以0结尾并替换为Pass/Fail?

解决方案:用dplyr批量处理列,判断数值是否以0结尾

没问题,这个需求用dplyr就能轻松搞定,我给你两种实用的实现方式,都是针对你提供的tibble数据来设计的:

方法一:使用mutate(across())(推荐,dplyr 1.0.0+版本)

这是dplyr新版本的标准写法,灵活性更强,代码可读性也高:

library(dplyr)

df1 <- tibble(
  col1 = c(10,12,8,20),
  col2 = c(45, 18, 10, 500)
)

# 核心处理代码
df2 <- df1 %>%
  mutate(across(everything(), ~ifelse(.x %% 10 == 0, "Pass", "Fail")))

# 查看结果
df2

逻辑解释:

  • across(everything()):指定对数据框里的所有列进行操作
  • .x %% 10 == 0:利用取模运算判断数值是否能被10整除(也就是以0结尾),比字符串匹配更高效(因为你的数据是数值型)
  • ifelse(...):根据判断结果返回"Pass"或"Fail"

方法二:使用mutate_all()(旧版dplyr兼容写法)

如果你用的是较旧版本的dplyr,也可以用mutate_all来实现同样的效果:

df2 <- df1 %>%
  mutate_all(~ifelse(.x %% 10 == 0, "Pass", "Fail"))

运行上面任意一种代码后,得到的df2就会和你期望的结果完全一致:

# A tibble: 4 × 2
  col1  col2 
  <chr> <chr>
1 Pass  Fail 
2 Fail  Fail 
3 Fail  Pass 
4 Pass  Pass 

内容的提问来源于stack exchange,提问作者Mrmoleje

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:47:06