拆分数据框中的列?

mil*_*ilk 2 r dataframe

我有这个数据框,里面有IMDb的数据.其中一列有电影标题,括号中附有年份.看起来像这样:

The Shawshank Redemption (1994)
Run Code Online (Sandbox Code Playgroud)

我真正想要的是将标题和年份分开.我尝试了几种不同的东西(分裂,strsplit),但我没有成功.我尝试拆分第一个括号,但两个拆分函数似乎不喜欢非字符参数.有人有什么想法?

akr*_*run 7

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)

  • 吻,`\\ s*[()]` (5认同)