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

在DataFrame中检测姓名间多余空格时遇报错,求排查解决

问题排查与解决

报错原因分析

  1. across()函数误用:across()是用于批量处理DataFrame现有列的工具,新增列直接在mutate()里定义即可,无需嵌套across(),这是触发报错的核心原因。
  2. 不存在countSpaces()函数:R基础包和dplyr均无此函数,需用字符串处理函数实现空格统计。
  3. 列引用方式错误:mutate()中直接写列名即可按行处理,无需用df[["name"]]这种全局引用方式。

正确实现代码

场景1:检测总空格数大于1的行

如果“多余空格”指姓名中总空格数超过1,使用以下代码:

library(dplyr)
library(stringr)

# 原始数据
df <- data.frame(name=c("Tijor Maikin","McKaren Blanken","Matrick Powell","Larry Bishop","Johnson Patterson","Richard pack","Nancy john Alli","McLaura kukeza ","Shellby  sen", "John N. Murphy", "Alex Hr Nelson"))

# 新增标记列
df1 <- df %>% 
  mutate(`new name` = ifelse(str_count(name, "\\s") > 1, "have spaces", ""))

场景2:检测连续空格(两个及以上)的行

如果要标记存在连续空格的行(比如Shellby sen里的双空格),使用以下代码:

df2 <- df %>% 
  mutate(`new name` = ifelse(str_detect(name, "\\s{2,}"), "have consecutive spaces", ""))

期望输出示例(场景1)

namenew name
Tijor Maikin
McKaren Blanken
Matrick Powell
Larry Bishop
Johnson Patterson
Richard pack
Nancy john Allihave spaces
McLaura kukeza
Shellby senhave spaces
John N. Murphyhave spaces
Alex Hr Nelsonhave spaces

内容的提问来源于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.14 00:19:56