如何根據符號“|”將一列分成許多列 :
input <- tibble(A = c("Ae1 tt1 | Ae2 tt2", "Be1 | Be2 | Be3"))
output <- tibble(B = c("Ae1 tt1", "Be1") , C = c("Ae2 tt2", "Be2"), D = c(NA, "Be3"))
我試過 :
input %>%
separate(A, c("B","C","D"))
#separate(A, c("B","C","D"), sep = "|.")
#mutate(B = str_split(A, "*|")) %>% unnest
regex 的語法是什么?
謝謝
uj5u.com熱心網友回復:
您可以使用
output <- input %>%
separate(col=A, into=c("B","C","D"), sep="\\s*\\|\\s*", fill="right")
測驗:
> input %>% separate(col=A, into=c("B","C","D"), sep="\\s*\\|\\s*", fill="right")
# A tibble: 2 x 3
B C D
<chr> <chr> <chr>
1 Ae1 tt1 Ae2 tt2 <NA>
2 Be1 Be2 Be3
該\s*\|\s*模式將管道字符與管道兩端的任何零個或多個空白字符相匹配。
該fill="right"說法在右側缺失值填充。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351519.html
