Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的正则表达式和SharePoint名称_R_Regex_Sharepoint_Stringr - Fatal编程技术网

R中的正则表达式和SharePoint名称

R中的正则表达式和SharePoint名称,r,regex,sharepoint,stringr,R,Regex,Sharepoint,Stringr,我正在尝试从SharePoint生成的列表中提取名称 列表中的每个项目至少包含一个名称和一个长度不同的数字id 列表的格式如下所示: all_projects %>% select(contact_names) A tibble: 116 x 1 contact_names &

我正在尝试从SharePoint生成的列表中提取名称

列表中的每个项目至少包含一个名称和一个长度不同的数字id

列表的格式如下所示:

all_projects %>% 
  select(contact_names)

 A tibble: 116 x 1
                                                contact_names
                                                       <chr>
 1 last_name, first_name;#6903;#last_name, first_name;#36606
 2                               last_name, first_name;#8585
 3                                                       ...
 4                              last_name, first_name;#14801
但结果是:

\"last_name, first_name;;last_name, first_name;\", 
要不是双倍的
;,哪一个还可以。插入(
)空白字符串
str_replace_all(string,pattern=“;#?\\d*”,“”)将返回:

\"last_name, first_namelast_name, first_name;\", 
理想情况下,我希望将名字和姓氏分为两列


非常感谢您的帮助。

我们可以使用
separate/separate\u rows

library(tidyverse)
separate_rows(df1, contact_names, sep = ";") %>%
        filter(!grepl("#\\d+", contact_names)) %>% 
        mutate(contact_names = str_replace_all(contact_names, "#", "")) %>%
        separate(contact_names, into = c("last", "first"), sep=",", remove = FALSE)
# A tibble: 4 x 3
#          contact_names      last       first
#*                 <chr>     <chr>       <chr>
#1 last_name, first_name last_name  first_name
#2 last_name, first_name last_name  first_name
#3 last_name, first_name last_name  first_name
#4 last_name, first_name last_name  first_name
库(tidyverse)
单独的_行(df1,联系人姓名,sep=“;”)%>%
筛选器(!grepl(“#\\d+”,联系人姓名))%>%
变异(联系人姓名=str_替换所有联系人姓名,“#”和“”)%>%
分开(联系人姓名,分为=c(“最后”、“第一”),sep=“,”,remove=FALSE)
#一个tibble:4x3
#联系人姓名排在最后
#*                             
#1姓氏,姓氏姓氏姓氏姓氏
#2姓,名姓氏姓氏姓氏姓氏
#3姓氏,名姓氏姓氏姓氏姓氏
#4姓,名姓氏姓氏姓氏姓氏
数据
df1
library(tidyverse)
separate_rows(df1, contact_names, sep = ";") %>%
        filter(!grepl("#\\d+", contact_names)) %>% 
        mutate(contact_names = str_replace_all(contact_names, "#", "")) %>%
        separate(contact_names, into = c("last", "first"), sep=",", remove = FALSE)
# A tibble: 4 x 3
#          contact_names      last       first
#*                 <chr>     <chr>       <chr>
#1 last_name, first_name last_name  first_name
#2 last_name, first_name last_name  first_name
#3 last_name, first_name last_name  first_name
#4 last_name, first_name last_name  first_name
df1 <- tribble(
        ~contact_names,   
                     "last_name, first_name;#6903;#last_name, first_name;#36606",
                            "last_name, first_name;#8585", 
                           "last_name, first_name;#14801")