作者wmj10054039 (MJ)
看板R_Language
標題[問題] dataframe字串切割
時間Mon Jun 4 23:47:39 2018
[問題類型]:
程式諮詢(我想用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://webptt.com/m.aspx?n=bbs/R_Language/M.1528127261.A.726.html
1F:→ Wush978: 先切割問題。如果給你流水號102的課程,你有沒有辦法切? 06/05 00:04
2F:→ Wush978: "二3,4四5,7" --> list(c("二","二","四","四"), 06/05 00:05
3F:→ Wush978: c(3,4,5,7)) 06/05 00:06
4F:→ Wush978: 先解決這個問題,再解決其他問題。我自己是覺得這個問題 06/05 00:06
5F:→ Wush978: 最難 06/05 00:06
6F:→ Wush978: 大概要先解決:1.分辨數字、中文字 2.中文字與數字的搭配 06/05 00:07
7F:→ Wush978: 解決這兩個問題就寫出來了 06/05 00:07
8F:→ Wush978: 上面搭配的意思是,分辨如"二3四5,6,7"與"二3,4四5,7" 06/05 00:08
9F:→ celestialgod: 反過來想就好XD,先把二、四當作切割字元 06/05 00:32
10F:→ celestialgod: 這樣就能拆出3,4跟5,7,然後把3,4跟5,7當作切割字元 06/05 00:33
11F:→ celestialgod: 這樣就能變成 list(c("二","四"),c("3,4","5,7")) 06/05 00:33
12F:→ celestialgod: 然後先展開日期部分,在切割一次節次就結束了 06/05 00:34
13F:→ wmj10054039: 感謝Wush大指點問題切割方向,我在作的時候就是 06/06 01:13
14F:→ wmj10054039: 卡在這部分,不知道怎麼中文字跟數字作切割 06/06 01:16
15F:推 Wush978: 可以用正規表達式來抓0-9 06/06 13:07
17F:→ Wush978: 之後搭配的問題,我會先用中文字當錨點切割字串 06/06 13:08
18F:→ Wush978: 把字串變成如 "一1,2" , "三3,4" 這樣之後,再展開就解 06/06 13:08
19F:→ Wush978: 決了 06/06 13:08
20F:→ wmj10054039: 瞭解,原來c大是用正規表達方法,一開始想說怎麼都 06/06 18:20
21F:→ wmj10054039: 看不懂XD 我會好好研究您的教學 感謝~ 06/06 18:20