删除 r 中数据帧内的所有小于符号

问题描述 投票:0回答:2

我有一个包含少于符号的数据框:

col1 <- c(1,5,"<4",3,2,9)
col2 <- c(1,7,"<3",1,0,"<9")
df <- data.frame(col1,col2)

我尝试使用以下方法删除它们:

df%>% mutate(across(everything(), ~recode(.x,"<" =""))) 
但没有任何反应

任何人都可以更新代码以删除小于符号吗?

r
2个回答
1
投票

这是一个不使用正则表达式的单行

tidyverse
解决方案:

purrr::map_df(df, readr::parse_number)

# A tibble: 6 × 2
   col1  col2
  <dbl> <dbl>
1     1     1
2     5     7
3     4     3
4     3     1
5     2     0
6     9     9

0
投票

使用

gsub
代替
recode
:

df %>% mutate(across(everything(), ~gsub("<", "", .x)))

如果您也想将列转换为数字,请使用

df %>% mutate(across(everything(), ~as.numeric(gsub("<", "", .x))))
© www.soinside.com 2019 - 2024. All rights reserved.