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

检查name列双空格时出错,寻求R语言代码修正方案

问题修正方案

代码错误分析

  • across 用法错误:across 用于对已有列批量处理,新增列无需使用它,直接在 mutate 中赋值新列即可。
  • 空格检测逻辑偏差:原 countSpaces 统计的是总空格数,但需求是检测连续双空格/多余空格,总空格数大于1不代表存在连续空格(比如"a b c"有2个单独空格,但无连续空格)。

修正后的代码

df7 <- data.frame(name_1 = c("ttt, hbue","mna,ssu huna","vga,  pahk","hja, dhyn","cct, indo","nhu,nhuv"))

# 检测字符串中是否存在连续双空格
has_double_space <- function(s) {
  grepl("  ", s)
}

name_col <- "name_1"

# 新增标识列
df7 <- df7 %>% 
  mutate(`1. double space in name` = ifelse(has_double_space(.data[[name_col]]), 
                                            "1. name contains unnecessary space", 
                                            ""))

代码说明

  • 用 grepl(" ", s) 直接检测字符串中是否存在连续双空格,逻辑更贴合需求。
  • 用 .data[[name_col]] 引用列名,符合tidyverse规范,避免直接引用全局环境变量。
  • 去掉多余的 across,直接在 mutate 中创建新列,语法正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:53:12