[問題] 擷取中文特定字串

作者: love11098787 (Laipi_lai)   2020-08-05 15:45:23
[問題類型]
程式諮詢
[軟體熟悉度]
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我想要把欄位中的**區擷取出來,網路上看到很多正規式的方式,但因為資料格式不太一致,無法用選位置的方式,想請假板上的神人應該怎麼寫,先感謝了!
[程式範例]:
https://i.imgur.com/6AwcUJ8.jpg
[環境敘述]:
R 3.6.0
[關鍵字]:
字串擷取
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-05 16:49:00
我建議直接列舉所有直轄市的區名去抓,比純靠reg exp的邏輯還穩當。
作者: locka (locka)   2020-08-05 16:59:00
推Andrew大!有的區是三個字(ex:那瑪夏區)直接用清單比對比較不會錯
作者: love11098787 (Laipi_lai)   2020-08-05 17:31:00
這筆資料只有台北市的,看過區應該都剛好是三個字
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-05 18:07:00
補上code,包括之後檢查的方向。https://pastebin.com/vcM8tHyE
作者: love11098787 (Laipi_lai)   2020-08-05 21:49:00
感謝A大!!!成功了遇到character(0)要怎麼刪除,我用data[length(data$region)>0]發現刪不掉
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-06 14:33:00
`data`是list嗎?用雙重中括號更正,試試在我的code後res[sapply(res, length) != 0]
作者: love11098787 (Laipi_lai)   2020-08-06 14:49:00
data是資料框character(0)還是無法刪除
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-06 15:04:00
請以code重現你的操作。
作者: love11098787 (Laipi_lai)   2020-08-06 15:16:00
data$region[sapply(data$region,length)!=0]
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-06 15:28:00
沒有完整重現困難的code與假資料實在無能為力
作者: andrew43 (討厭有好心推文後刪文者)   2020-08-06 15:58:00
試試用x<-character(0); identical(x, character(0))去一個一個檢驗。x應對應一個cell而非一整個column。
作者: love11098787 (Laipi_lai)   2020-08-06 17:31:00
找到方法了,在前面資料處理的時候拿掉不要的字串,之後就不會出現了,感謝你!

Links booklink

Contact Us: admin [ a t ] ucptt.com