如何在R语言数据框(dataframe)中移除所有小于符号(<)?
解决移除DataFrame中小于符号("<")的问题
你之前的代码无效,核心原因是recode()函数是完全匹配并替换整个元素——你的数据里是<和数字绑定在一起的(比如<4),并非单独的<元素,所以recode("<" = "")找不到可匹配的内容,自然不会有任何变化。
下面提供两种可行的修改方案:
方案1:使用stringr::str_remove_all(tidyverse风格)
利用字符串替换函数,直接删除每个元素中的<符号:
library(tidyverse) # 构造你的数据框 col1 <- c(1,5,"<4",3,2,9) col2 <- c(1,7,"<3",1,0,"<9") df <- data.frame(col1,col2) # 移除所有<符号 df_cleaned <- df %>% mutate(across(everything(), ~str_remove_all(.x, "<"))) # 查看结果 df_cleaned
如果需要将处理后的列转为数值型,可追加as.numeric():
df_cleaned <- df %>% mutate(across(everything(), ~str_remove_all(.x, "<") %>% as.numeric()))
方案2:使用基础R的gsub(无需额外加载包)
用基础R的全局替换函数实现相同效果:
# 构造你的数据框 col1 <- c(1,5,"<4",3,2,9) col2 <- c(1,7,"<3",1,0,"<9") df <- data.frame(col1,col2) # 移除所有<符号 df_cleaned <- df %>% mutate(across(everything(), ~gsub("<", "", .x)))
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

