从数据框中的发布年份拆分作者姓名

时间:2015-11-01 22:53:16

标签: r

我想知道如何能够将作者姓名从学年中拆分并将它们分成不同的列。我拥有的数据框如下:

df <- 
Study                N
John et al., 2003    10
Nich et al., 1988    15

结果应该是:

df <-
Study         Year    N
John et al.,  2003    10
Nich et al.,  1988    15

我正在使用R。

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式来选择两个部分

df$Year <- gsub("^.*, ", "", df$Study) #remove everything before ", "
df$Study <- gsub(",.*$", "", df$Study) #remove everything after ","

答案 1 :(得分:0)

你也可以从tidyr中提取。

library(dplyr)
library(tidyr)
df %>%
  extract(Study, c("Author", "Year"), "(.*), ([0-9]{4})")

答案 2 :(得分:0)

我们也可以使用data.table。我们转换了&#39; data.frame&#39;到&#39; data.table&#39; (setDT(df),使用tstrsplit拆分&#39;研究&#39;并使用setnames更改列名称。

library(data.table)#v1.9.6+
setnames(setDT(df)[, c(tstrsplit(Study, '(?<=,) ', perl=TRUE), 
                list(N=N))], 1:2, c('Year', 'Study'))[]
#           Year Study  N
#1: John et al.,  2003 10
#2: Nich et al.,  1988 15