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

如何在R中基于同行列的<符号为数据框添加Y/N检测列?

问题修正与解决方案

首先,你的代码存在几处语法错误,以下是修正后的完整流程:

1. 正确创建数据框

原始数据框中,带<的数值需要以字符串形式定义,否则R会识别为语法错误:

df <- data.frame(
  analyte1 = c("1", "1.5", "3", "<2"),
  analyte2 = c("<1", "2", "3", "<1"),
  analyte3 = c("1", "<1", "1.5", "3"),
  stringsAsFactors = FALSE # 避免自动转为因子类型
)

2. 修正列名定义与mutate语法

  • 列名需定义为字符向量,不能直接写未加引号的变量名
  • across()的语法需要正确嵌套:判断逻辑要放在across()内部,.names参数属于across()的参数之一

修正后的代码:

# 定义目标分析物列的名称(字符向量)
target_cols <- c("analyte1", "analyte2", "analyte3")

# 批量生成detect判断列
df <- df %>%
  mutate(across(all_of(target_cols), 
                ~ifelse(grepl("<", .x), "N", "Y"),
                .names = "detect_{.col}"))

运行结果说明

执行后,数据框会新增detect_analyte1、detect_analyte2、detect_analyte3三列,判断规则为:

  • 对应分析物单元格包含<时,值为N
  • 不包含<时,值为Y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:05:10