看板 R_Language 關於我們 聯絡資訊
※ 引述《pp61022 (fight)》之銘言: : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 使用者(已經有用R 做過不少作品) : [問題敘述]: : 我有一個變數是字串,裡面同時包含中文英文,但沒有任何分隔符號。 : 例如: : [1] "劍橋大學University of Cambridge" : [2] "皇家理工學院(帝國理工學院)Imperial College London" : [3] "加州大學洛杉磯分校University of California-Los Angeles" : [4] "Melbourne University" : ...... : ...... : 我想把這個變數拆成兩個變數 : "學校中譯", "學校英名" : 如: : [1] "劍橋大學", "University of Cambridge" : [2] "皇家理工學院(帝國理工學院)", "Imperial College London" : [3] "加州大學洛杉磯分校" , "University of California-Los Angeles" : [4] NA, "Melbourne University" : ... : ... : 這變數有一部分含中譯,一部分只有英文, : 因為他中文字長度不一樣,沒辦法直接取個數分割, : 不過有中譯結尾都是"學院", "大學", "分校"(但並非整個字串的結尾) : 剛接觸文字清理,對全部函數還沒辦法通透運用,有搜尋一陣子但都無法達成想要的結果 : ,想請教版友有沒有好方法可以將中英文完整分割成兩個變項,謝謝版友。 : 或是沒辦法中英文分割,能否只留下英文,之後我再自己串中英文對照,謝謝版友。 : [程式範例]: : [環境敘述]: : 請提供 sessionInfo() 的輸出結果, : 裡面含有所有你使用的作業系統、R 的版本和套件版本資訊, : 讓版友更容易找出錯誤 : [關鍵字]: : 我已經習慣用stringr了,所以如果你想要用R原生的就用strsplit跟gsub library(stringr) x <- c("劍橋大學University of Cambridge", "皇家理工學院(帝國理工學院)Imperial College London", "加州大學洛杉磯分校University of California-Los Angeles", "Melbourne University") str_split(str_replace_all(x, "([^A-Za-z ]*)([A-Za-z\\- ]+)", "\\1,\\2"), ",") output: [[1]] [1] "劍橋大學" "University of Cambridge" [[2]] [1] "皇家理工學院(帝國理工學院)" "Imperial College London" [[3]] [1] "加州大學洛杉磯分校" "University of California-LosAngeles" [[4]] [1] "" "Melbourne University" -- R資料整理套件系列文: magrittr #1LhSWhpH (R_Language) https://goo.gl/72l1m9 data.table #1LhW7Tvj (R_Language) https://goo.gl/PZa6Ue dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/I5xX9b tidyr #1Liqls1R (R_Language) https://goo.gl/i7yzAz pipeR #1NXESRm5 (R_Language) https://goo.gl/zRUISx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.190.147 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1500633836.A.304.html ※ 編輯: celestialgod (36.232.190.147), 07/21/2017 18:44:46 ※ 編輯: celestialgod (36.232.190.147), 07/21/2017 18:45:30
pp61022: 謝謝您提供第二種方法! 07/22 10:04
DoBahaha: 感謝收益良多 07/23 01:11