如何在整个R(data.table)数据集中将‘..’替换为空白字符?
如何在R数据集中批量替换‘..’为空白字符?
针对你用fread读取的data.table类型数据集,这里提供两种高效的批量替换方法:
方法一:使用data.table原生语法
直接遍历所有列完成替换,若要修改原数据集,可使用:=操作符:
# 直接修改原数据集,将所有列中的".."替换为空白 IPI[, names(IPI) := lapply(.SD, function(col) gsub("\\.\\.", "", col))]
如果不想改动原数据集,而是生成新的干净数据集:
IPI_clean <- IPI[, lapply(.SD, function(col) gsub("\\.\\.", "", col))]
方法二:使用dplyr包(兼容data.table/data.frame)
先加载dplyr包,再用mutate_all批量处理所有列:
library(dplyr) IPI_clean <- IPI %>% mutate_all(~gsub("\\.\\.", "", .))
说明
gsub("\\.\\.", "", x)里的\\.是对正则表达式中的点进行转义(点在正则中默认代表任意字符),这样才能精准匹配连续的两个点..,并将其替换为空字符串(即空白字符)。
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

