Re: [程式] R要如何讀不規則的txt檔

看板Statistics作者 (拒看低質媒體)時間11年前 (2013/02/25 19:59), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
這裡是一個regular expression 的demo: https://gist.github.com/wush978/5029291 我的R的版本是2.15.2 下面註解是我的跑出來的結果。 你可以看到,透過regular expression, R可以定位出id, b_date, d_date的位置 並且可以處理missing data (第三行缺了d_date) --- 以下解釋一下我寫的regular expression: "(?<id>[A-Z]\\d{9})(?<b_date>\\d{6})(?<d_date>\\d{6}){0,1}" 第一個括號"(?<id>[A-Z]\\d{9})"代表子pattern, ?<id>表示這個pattern叫作"id" [A-Z]表示這是一個A-Z的字元 \\d表示這是一個數字(0-9), ps. \\是R字串的跳脫字元, 實際上只代表一個\ {9}表示有9個前面的東西, 也就是有9個數字 第二個括號同理 第3個括號最後接了{0,1}表示第3個括號的東西可能有0個或1個以對付missing data 可以注意到第3個d_date的長度是0,表示這裡有missing data 詳細的regular expression介紹可以參考: http://statlab.nchc.org.tw/rnotes/?page_id=171 R的字串處理還可以參考 http://en.wikibooks.org/wiki/R_Programming/Text_Processing ※ 引述《piq (享)》之銘言: : ------------------------------------------------------------------------ : [軟體程式類別]: : R : [程式問題]: : 讀檔 : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 低(1~3個月) : [問題敘述]: : 不規則的txt檔 : 譬如:身分證字號(ID)跟生日(b_bate) 死亡日(d_date) 一般人會要分開看 : 可是如果資料今天是 打成 X123456789050102550703 : 意思是id=X123456789 b_date=05年01月02日 d_date=55年07月03日 : 可是今天處理資料中 有人尚未死亡 故沒有d_date 有些則有 : 那要如何把這樣的資料有系統的讀入R呢? : [程式範例]: : ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.140.25.134 ※ 編輯: Wush978 來自: 114.140.25.134 (02/25 20:00) ※ 編輯: Wush978 來自: 114.140.25.134 (02/25 20:01)

02/27 00:10, , 1F
02/27 00:10, 1F
文章代碼(AID): #1HAr8h9O (Statistics)
文章代碼(AID): #1HAr8h9O (Statistics)