R - 向数据框添加新列并复制现有行

时间:2018-01-11 23:13:32

标签: r

我有一个像这样的数据框,

ColA  ColB  
Asd   1
Asdf  3

我想在数据框中添加一个新列,假设新列的值为2000,2001,2002。需要为ColA中的每个值添加这些值。

所以我的预期数据框是,

ColA   ColB   Year
Asd     1      2000
Asd     1      2001
Asd     1      2002
Asdf    3      2000
Asdf    3      2001
Asdf    3      2002

1 个答案:

答案 0 :(得分:1)

使用data.table,我们可以按ColA, ColB进行分组,并将'year'序列作为列

library(data.table)
setDT(df1)[, .(Year = 2000:2002), .(ColA, ColB)]

tidyverse

library(tidyr)
crossing(df1, year = 2000:2002)
#  ColA ColB year
#1  Asd    1 2000
#2  Asd    1 2001
#3  Asd    1 2002
#4 Asdf    3 2000
#5 Asdf    3 2001
#6 Asdf    3 2002