在R中复制表,并在一列中进行更改

时间:2017-09-14 11:27:12

标签: r dataframe

我在R中有这个表:

Name     ID    Year   Month  Date  
John     8     2017    7     16     
Carol    90    2017    7     30  
Bug      9     2017    7     1   

我想复制同一个表4次,所有值都应该相同。除了Month列,每次都需要递增1。决赛桌应如下所示:

Name     ID    Year   Month  Date  
John     8     2017    7     16  
Carol    90    2017    7     30  
Bug      9     2017    7     1   
John     8     2017    8     16  
Carol    90    2017    8     30  
Bug      9     2017    8     1  
John     8     2017    9     16  
Carol    90    2017    9     30  
Bug      9     2017    9     1  
John     8     2017    10     16  
Carol    90    2017    10    30  
Bug      9     2017    10    1  
John     8     2017    11    16  
Carol    90    2017    11    30  
Bug      9     2017    11    1  

请指出如何在R中有效地做到这一点。非常感谢!

1 个答案:

答案 0 :(得分:2)

如果这是您的数据框:

df = read.table(text = "Name ID Year Month Date
            John 8 2017 7 16
            Carol 90 2017 7 30
            Bug 9 2017 7 1", header = TRUE)

然后这是你的数据帧重复:

df2 = df[rep(rownames(df), 4),]

这就是它,但随着月份的增加:

df2$Month = df2$Month + rep(0:3, 3)

在更一般的情况下:

m = 4 # <-- number of rows desired
df2 = df[rep(rownames(df), m), ]
df2$Month = df2$Month + rep(0:m, nrow(df))