我需要一些幫助stringr::str_extract_all
x是我的資料框的名稱。
V1
(A_K9B,A_K9one,A_K9two,B_U10J)
x = x %>%
mutate(N_alph = map_chr(str_extract_all(x$V1, 'A_([A-Z][0-10])[A-Z]'), toString))
x = x %>%
mutate(N_.1 = map_chr(str_extract_all(x$V1, 'A_([A-Z][0-10])[o][n][e]'), toString))
x = x %>%
mutate(N_.2 = map_chr(str_extract_all(x$V1, 'A_([A-Z][0-10])[t][w][o]'), toString))
這是我當前的輸出:
V1 N_alph N_.1 N_.2
(A_K9B,A_K9one,A_K9two,B_U10J) A_K9B A_K9one A_K9two
我對我的專欄很好,N_alph因為我希望它與其他兩個分開。但理想情況下,如果我使用以下命令,我希望避免鍵入[o][n][e]和[t][w][o]那些后面跟著單詞而不是一個字母的變數:
x = x %>%
mutate(N_alph = map_chr(str_extract_all(x$V1, 'A_([A-Z][0-10])[A-Z]'), toString))
x = x %>%
mutate(N_all.words = map_chr(str_extract_all(x$V1, 'A_([A-Z][0-10])[\\w ]'), toString))
輸出是:
V1 N_alph N_all.words
(A_K9B,A_K9one,A_K9two,B_U10J) A_K9B A_K9B,A_K9o,A_K9t
所需的輸出將是
V1 N_alph N_all.words
(A_K9B,A_K9one,A_K9two,B_U10J) A_K9B A_K9one,A_K9two
uj5u.com熱心網友回復:
當您使用像 \w、\b、\s 等元字符時,您不需要方括號。但是,如果您確實使用方括號,則 需要在外面。此外,數字組應該是 [0-9],因為我們討論的是單個字符,而不是字符組合。為了考慮大于 9 的數字,我們只需擴展使用 {} 括號或簡單的 運算子檢查組的次數。最終結果如下所示:
x %>%
mutate(N_all.words = str_extract_all(V1, 'A_([A-Z][0-9]{1,2})\\w '))
結果:
V1 N_all.words
1 (A_K9B,A_K9one,A_K9two,B_U10J) A_K9B, A_K9one, A_K9two
我還創建了一個我覺得更整潔的版本:
x %>%
mutate(N_all.words = str_extract_all(V1, 'A_\\w\\d{1,2}\\w '))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492582.html
上一篇:用r中的列中的字符分隔字串
