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

R语言仅满足特定条件时修改dataframe数值的问题咨询

R语言dplyr按条件修改数值列解决方案

你可以直接调整原if_else内的返回逻辑,满足「L开头行数值统一转为非正、非L开头行保留原值」的需求,修改后代码如下:

library(dplyr)
dat <- dat %>% 
  mutate(across(where(is.numeric), 
                ~ if_else(grepl("^L", A), -abs(.), .)))

逻辑说明

  • grepl("^L", A) 沿用原有匹配规则,可准确匹配A列的L和Left两类取值
  • 匹配成功的行返回-abs(.):对当前数值取绝对值后加负号,自动实现「正数转负、负数保持不变」的要求
  • 匹配失败的行直接返回原值.,不会对非L开头的行做任何修改

运行后输出的结果完全符合预期:

A  B  C
1     L -2 -3
2 Right  5  6
3     R  7 -4
4  Left -8 -9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 01:15:00