我在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中有效地做到这一点。非常感谢!
答案 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))