看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我目前整理了一份學校所有課程的時間表,想知道不同星期,不同地點,各時段的 人數統計。dataframe資料範例如下: 流水號 課程名稱 時間 地點 人數 102 A 二3,4四5,7 甲 10 248 B 一1,2,3 乙 20 314 C 三4五7,8,a 丙 5 想請問各位可以用甚麼方法對時間那一欄作字串切割變成以下新的dataframe 流水號 課程名稱 星期 節次 地點 人數 102 A 二 3 甲 10 102 A 二 4 甲 10 102 A 四 5 甲 10 102 A 四 7 甲 10 248 B 一 1 乙 20 248 B 一 2 乙 20 . . . . . . 目前想法只有想到for迴圈搭配strspilt,但還是想不到實際寫法,麻煩各位指教了,謝謝 [環境敘述] R version 3.4.2 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.51.138 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1528127261.A.726.html
Wush978: 先切割問題。如果給你流水號102的課程,你有沒有辦法切? 06/05 00:04
Wush978: "二3,4四5,7" --> list(c("二","二","四","四"), 06/05 00:05
Wush978: c(3,4,5,7)) 06/05 00:06
Wush978: 先解決這個問題,再解決其他問題。我自己是覺得這個問題 06/05 00:06
Wush978: 最難 06/05 00:06
Wush978: 大概要先解決:1.分辨數字、中文字 2.中文字與數字的搭配 06/05 00:07
Wush978: 解決這兩個問題就寫出來了 06/05 00:07
Wush978: 上面搭配的意思是,分辨如"二3四5,6,7"與"二3,4四5,7" 06/05 00:08
celestialgod: 反過來想就好XD,先把二、四當作切割字元 06/05 00:32
celestialgod: 這樣就能拆出3,4跟5,7,然後把3,4跟5,7當作切割字元 06/05 00:33
celestialgod: 這樣就能變成 list(c("二","四"),c("3,4","5,7")) 06/05 00:33
celestialgod: 然後先展開日期部分,在切割一次節次就結束了 06/05 00:34
wmj10054039: 感謝Wush大指點問題切割方向,我在作的時候就是 06/06 01:13
wmj10054039: 卡在這部分,不知道怎麼中文字跟數字作切割 06/06 01:16
Wush978: 可以用正規表達式來抓0-9 06/06 13:07
Wush978: 可以參考我之前寫的教學: http://0rz.tw/Z7bn3 06/06 13:07
Wush978: 之後搭配的問題,我會先用中文字當錨點切割字串 06/06 13:08
Wush978: 把字串變成如 "一1,2" , "三3,4" 這樣之後,再展開就解 06/06 13:08
Wush978: 決了 06/06 13:08
wmj10054039: 瞭解,原來c大是用正規表達方法,一開始想說怎麼都 06/06 18:20
wmj10054039: 看不懂XD 我會好好研究您的教學 感謝~ 06/06 18:20