[问题] dataframe字串切割

楼主: wmj10054039 (MJ)   2018-06-04 23:47:39
[问题类型]:
程式咨询(我想用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
作者: Wush978 (拒看低质媒体)   2018-06-05 00:04:00
先切割问题。如果给你流水号102的课程,你有没有办法切?"二3,4四5,7" --> list(c("二","二","四","四"),c(3,4,5,7))先解决这个问题,再解决其他问题。我自己是觉得这个问题最难大概要先解决:1.分辨数字、中文字 2.中文字与数字的搭配解决这两个问题就写出来了上面搭配的意思是,分辨如"二3四5,6,7"与"二3,4四5,7"
作者: celestialgod (天)   2018-06-05 00:32:00
反过来想就好XD,先把二、四当作切割字符这样就能拆出3,4跟5,7,然后把3,4跟5,7当作切割字符这样就能变成 list(c("二","四"),c("3,4","5,7"))然后先展开日期部分,在切割一次节次就结束了
楼主: wmj10054039 (MJ)   2018-06-06 01:13:00
感谢Wush大指点问题切割方向,我在作的时候就是卡在这部分,不知道怎么中文字跟数字作切割
作者: Wush978 (拒看低质媒体)   2018-06-06 13:07:00
可以用正规表达式来抓0-9可以参考我之前写的教学: http://0rz.tw/Z7bn3之后搭配的问题,我会先用中文字当锚点切割字串把字串变成如 "一1,2" , "三3,4" 这样之后,再展开就解决了
楼主: wmj10054039 (MJ)   2018-06-06 18:20:00
了解,原来c大是用正规表达方法,一开始想说怎么都看不懂XD 我会好好研究您的教学 感谢~

Links booklink

Contact Us: admin [ a t ] ucptt.com