我有一个包含少于符号的数据框:
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,"<" ="")))
但没有任何反应
任何人都可以更新代码以删除小于符号吗?
这是一个不使用正则表达式的单行
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
使用
gsub
代替 recode
:
df %>% mutate(across(everything(), ~gsub("<", "", .x)))
如果您也想将列转换为数字,请使用
df %>% mutate(across(everything(), ~as.numeric(gsub("<", "", .x))))