这是我的df的一个例子:
5VT7N16324000434
我想创建一个仅显示标题和年份的数据框。有没有人对如何解析这个有任何建议?我想我可能需要拆分data
276 '83 Rally '83 (1983) (V)\t\t\t\t1983
277 '87: A Love Story (2007)\t\t\t\t2007
278 '88 Dodge Aries (2002)\t\t\t\t\t2002
279 '9': Acting Out (2009) (V)\t\t\t\t2009
\t\t\t\t
这是dput
Title Year
276 '83 Rally '83 (1983)
277 '87: A Love Story (2007)
278 '88 Dodge Aries (2002)
279 '9': Acting Out (2009)
答案 0 :(得分:1)
使用gsub():
df$Title <- gsub("(.*?) \\(.*", "\\1", df$data)
df$Year <- gsub(".*\\((\\d{4})\\).*", "\\1", df$data)
> df[c("Title", "Year")]
Title Year
1 276 '83 Rally '83 1983
2 277 '87: A Love Story 2007
3 278 '88 Dodge Aries 2002
4 279 '9': Acting Out 2009
注意:如果data
实际上是一个独立的向量,那么就直接使用它,例如
Title <- gsub("(.*?) \\(.*", "\\1", data)
以下是用于提取年份的正则表达式的解释:
.* match everything
\\( up until the first parenthesis
(\\d{4}) then capture a four digit year
\\) followed by a closing parenthesis
.* consume the remainder of the string
\\1
中用作替换的数量gsub()
使用比赛期间捕获的四位数年份。