如何用单条命令处理数据框除首列外所有列:清字符并转小写
处理数据框除首列外所有列的单条命令实现
当然有,下面给你两种常用的单条命令实现方式:
Base R 实现
直接用R基础包的函数组合,一行命令就能完成需求:
df[, -1] <- lapply(df[, -1], function(x) trimws(tolower(gsub("<.*>", "", x))))
df[, -1]:选中数据框中除第一列外的所有列;lapply:遍历选中的每一列,依次执行三个操作:gsub("<.*>", "", x):清除列中所有以<开头、>结尾的内容;tolower():将处理后的文本转为小写;trimws():去除文本首尾的空格。
Tidyverse(dplyr)实现
如果你习惯使用dplyr的管道式语法,用across函数可以写出更具可读性的单条命令:
library(dplyr) df <- df %>% mutate(across(-1, ~trimws(tolower(gsub("<.*>", "", .x)))))
across(-1):指定要处理除第一列外的所有列;~后面的表达式定义了对每一列的处理逻辑,和Base R的操作步骤完全一致,管道风格更贴合数据处理的流程思维。
内容的提问来源于stack exchange,提问作者Erik Brole
相关产品推荐
相关产品推荐

