簡體   English   中英

R:如何將字符串拆分成碎片

[英]R: How to split string into pieces

我正在嘗試拆分大量字符串,如下所示:

x = "�\001�\001�\001�\001�\001\002CN�\001\bShandong�\001\004Zibo�\002$ABCDEFGHIJK�\002\aIMG_HAS�\002�\002�\002�\002�\002�\002�\002�\002\02413165537405763268743�\002\001�\002�\002�\002�\003�\003�\003����\005�\003�\003�\003�\003"

分成四塊

'CN', 'Shandong', 'Zibo', 'ABCDEFGHIJK'

我試過了

stringr::str_split(x, '\\00.')

其中 output 是原點x 還,

trimws(gsub("�\\00?", "", x, perl = T))

這只會刪除未知字符

有人可以幫我解決這個問題嗎? 謝謝你這樣做。

您可以嘗試使用str_extract_all

stringr::str_extract_all(x, '[A-Za-z_]+')[[1]]
[1] "CN"          "Shandong"    "Zibo"        "ABCDEFGHIJK" "IMG_HAS"

帶底座 R:

regmatches(x, gregexpr('[A-Za-z_]+', x))[[1]]

在這里,我們提取所有帶有大寫、小寫或下划線的單詞。 其他所有內容都被忽略,所以像 �\\00? 最終 output 中沒有。

我們可以使用來自base R strsplit strsplit

setdiff(strsplit(x, "[^A-Za-z]+")[[1]], "")
#[1] "CN"          "Shandong"    "Zibo"        "ABCDEFGHIJK" "IMG"         "HAS"  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM