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

如何移除DataFrame非首列的多余空格并转换为小写?

R语言处理非首列文本:去多余空格+转小写

先给出原始数据定义:

df <- data.frame(id = c("google", "Amazon"), 
                 text1 = c("Lee  erke rle  "," Elrl fe"), 
                 text2 = c(" Text  e2  ","text Els "))

下面提供两种实用的实现方法:

方法一:Base R 原生实现

用lapply遍历除首列外的所有字段,组合三个函数完成需求:

  • tolower():将文本转为小写
  • trimws():移除字符串首尾的空格
  • gsub("\\s+", " ", ...):把字符串中间的多段连续空格替换成单个空格

代码如下:

# 处理第2列及之后的所有列
df[-1] <- lapply(df[-1], function(x) {
  tolower(trimws(gsub("\\s+", " ", x)))
})

运行后输出结果与预期完全一致:

> df
      id         text1     text2
1 google lee erke rle text e2
2 Amazon     elrl fe   text els

方法二:dplyr(tidyverse)实现

如果习惯用tidyverse风格的代码,用mutate()结合across()可以更直观地指定处理范围:

先确保已加载dplyr包:

library(dplyr)

然后执行清洗代码:

df_cleaned <- df %>%
  mutate(across(-id, ~ tolower(trimws(gsub("\\s+", " ", .)))))

该方法的输出效果和Base R实现完全相同。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:50:33