首页 > 解决方案 > 如何清理 col 并且只保留 # 和 number

问题描述

我尝试清理数据,但遇到了一些困难。可以使用代码构建示例数据:

如果可能的话,我想实现结果 1 和 2。我怎样才能做到这一点?请给我一些指导。谢谢。

在此处输入图像描述

标签: r

解决方案


我们可以使用str_extract_all从 a 中的 'N1' 中提取数字部分list,然后遍历listwith map,粘贴#类型转换后的值,以及collapse它们或不带#

library(dplyr)
library(stringr)
library(purrr)
df %>% 
    mutate(tmp = str_extract_all(N1, "\\d+"), 
    Outcome1 = map_chr(tmp, ~ str_c('#', as.numeric(.x), collapse=", ")), 
    Outcome2 = map_chr(tmp, ~ str_c(as.numeric(.x), collapse=", "))) %>%
    select(-tmp)

-输出

# A tibble: 8 x 3
#  N1        Outcome1 Outcome2
#  <chr>     <chr>    <chr>   
#1 "#7"      #7       7       
#2 "#7 #8"   #7, #8   7, 8    
#3 "#7,#8"   #7, #8   7, 8    
#4 "#07"     #7       7       
#5 "#/7"     #7       7       
#6 "#/\\7"   #7       7       
#7 "#7#8"    #7, #8   7, 8    
#8 "7 and 8" #7, #8   7, 8    

推荐阅读