【发布时间】:2019-09-13 06:55:57
【问题描述】:
我有:
dataDT <- data.table(A = 1:3, B = 1:3)
dataDT
A B
1: 1 1
2: 2 2
3: 3 3
我想要:
dataDT <- data.table(A = c(1:3, 1:3), B = c(1:3, 1:3))
dataDT
A B
1: 1 1
2: 2 2
3: 3 3
4: 1 1
5: 2 2
6: 3 3
即创建 x 个副本并在底行后追加。
我试过了(结果不是我需要的):
dataDT1 <- splitstackshape::expandRows(dataset = dataDT, count = 2, count.is.col = FALSE) # order not correct
dataDT1
A B
1: 1 1
2: 1 1
3: 2 2
4: 2 2
5: 3 3
6: 3 3
另外(结果不是我需要的):
dataDT2 <- rbindlist(list(rep(dataDT, 2))) # it creates columns
dataDT2
A B A B
1: 1 1 1 1
2: 2 2 2 2
3: 3 3 3 3
任何人都可以推荐一种正确有效的方法吗?
【问题讨论】:
-
最简单的一个:
dataDT[rep(dataDT[, .I], 2)](see also here)
标签: r duplicates data.table copy