【发布时间】:2018-01-14 05:52:26
【问题描述】:
我有一个矢量数据(这是数据框中的一列):
[1] "Tue 12-14 (w1-6, CLB 6)" "Mon 18-20 (w1-6, ColomboThC)" "Thu 14-16 (w1-6,7-9,10-12, CLB 8)"
[4] "Fri 13 (w2-9,10-13, Law 388)" "Fri 14 (w2-9,10-13, Sqhouse206)" "Fri 15 (w2-9,10-13, Sqhouse115)"
[7] "Thu 17 (w2-9,10-13, Block G16)" "Thu 18 (w2-9,10-13, Block G16)" "Mon 10 (w2-9,10-13, AinswthG01)"
[10] "Mon 11 (w2-9,10-13, Sqhouse203)" "Mon 12 (w2-9,10-13, Sqhouse206)" "Mon 13 (w2-9,10-13, BUS 114)"
[13] "Mon 16 (w2-9,10-13, Gold G03)" "Mon 17 (w2-9,10-13, Quad G047)" "Mon 20 (w2-9,10-13, Col LG02)"
[16] "Tue 17 (w2-9,10-13, Quad 1001)" "Tue 18 (w2-9,10-13, Quad 1001)" "Tue 19 (w2-9,10-13, Quad 1001)"
[19] "Tue 20 (w2-9,10-13)" "Wed 10 (w2-9,10-13, Quad 1046)" "Wed 11 (w2-9,10-13, Quad 1046)"
[22] "Wed 12 (w2-9,10-13, Quad 1046)" "Wed 13 (w2-9,10-13, Quad G046)"
我想根据模式提取字符串,因此作为示例,向量的第一个元素的预期输出将是:
"Tue" "12-14" "1-6" "CLB 6"
第三个元素的输出示例为:
"Thu" "14-16" c("1-6","7-9","10-12") "CLB 8"
c("1-6","7-9","10-12") 是一个列表。
(请注意,每一个都将作为新列附加到我的数据框中。)
我正在考虑使用gsub 来提取字符串的每个部分。还有其他我可以使用的功能吗?
非常感谢任何建议:)
【问题讨论】:
-
我想我也可以找到使用 grep 提取此内容的方法,但希望与至少发布过代码并自己尝试过一次的人合作,这是 stackoverflow 最有效的方法正常工作:)
-
?strsplit通常对这类事情也有帮助。指定分割文本段的内容。 “(w”或“)”或“,”看起来像。将它们中的每一个放入strsplit中,就像strsplit(x, "\\s+\\(w|\\)|,\\s+")一样,你就成功了。