如何在R中删除整个dataframe所有单元格内包含的指定NA|前缀字符
实现方案
Python Pandas 版本
全表自动覆盖所有列,仅删除开头的NA|前缀,原生缺失值(NA/NaN)不受影响:
import pandas as pd # 替换df为你的实际DataFrame变量名 df = df.replace(r'^NA\|', '', regex=True)
正则中
^符号确保仅匹配位于单元格开头的NA|前缀,不会误删内容中间出现的对应字符。
R 版本
基础R写法:
# 替换df为你的实际DataFrame变量名 df[] <- lapply(df, function(col) sub("^NA\\|", "", col))
dplyr 写法:
library(dplyr) df <- df %>% mutate(across(everything(), ~ sub("^NA\\|", "", .x)))
以上两种语言的实现都无需指定列名,会自动作用于整个DataFrame的所有单元格,和你给出的预期输出效果完全匹配。
内容的提问来源于stack exchange,提问作者Abbey
相关产品推荐
相关产品推荐

