我有这个数据框,里面有IMDb的数据.其中一列有电影标题,括号中附有年份.看起来像这样:
The Shawshank Redemption (1994)
Run Code Online (Sandbox Code Playgroud)
我真正想要的是将标题和年份分开.我尝试了几种不同的东西(分裂,strsplit),但我没有成功.我尝试拆分第一个括号,但两个拆分函数似乎不喜欢非字符参数.有人有什么想法?
strsplit关于character列的工作.因此,如果列是factor类,我们需要将其转换为characterclass(as.character(..)).在这里,我匹配零个或多个空格(\\s*)后跟parenetheses(\\()或右|括号(\\))split
strsplit(as.character(d1$v1), '\\s*\\(|\\)')[[1]]
#[1] "The Shawshank Redemption" "1994"
Run Code Online (Sandbox Code Playgroud)
或者我们可以将括号放在里面,[]这样我们就不必逃避\\(由@Avinash Raj评论)
strsplit(as.character(d1$v1), '\\s*[()]')[[1]]
Run Code Online (Sandbox Code Playgroud)
v1 <- 'The Shawshank Redemption (1994)'
d1 <- data.frame(v1)
Run Code Online (Sandbox Code Playgroud)