如何解决使用另一个函数来分隔数据框中的列,而不是tidy :: extract
我有一个使用tidyr提取功能的数据框列解析器:
sample_df <- tibble::tribble(~ body,"2020-09-10 20:58:41:107 MAIN <value> {message-accepted-once} [CASE_TWO] The message was accepted by user1")
sample_df %>%
tidyr::extract(col = "body",into = c("time","milsecs","var1","var2","var3","var4","var5"),regex = "^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}):(\\d+) (.*?) <(.*?)> \\{(.*?)\\} \\[(.*?)\\] (?s:(.*))$")
我想写相同的提取器,但是用另一个函数代替tidyr :: extract()。我认为一个单独的()函数可以是一个选择。如何为该函数重写解析器?还是其他函数(strsplit())?
当我使用
sample_df %>%
separate(body,sep = "^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}):(\\d+) (.*?) <(.*?)> \\{(.*?)\\} \\[(.*?)\\] (?s:(.*))$")
那给我空的列
所以,期望的结果是:
time milsecs var1 var2 var3 var4 var5
2020-09-10 20:58:41 107 MAIN value message-accepted-once CASE_TWO The message was accepted by user1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。