作者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/cn.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