利用重复索引可以达到这个目的:
> df <- data.frame(a=1:2, b=letters[1:2])
> df[rep(seq_len(nrow(df)), each=2),]
a b
1 1 a
1.1 1 a
2 2 b
2.1 2 b
不过行名怪怪的,用data.table看起来更舒爽
> df2 = data.table::as.data.table(df)
> df2[rep(seq_len(nrow(df)), each=2),] ->tt
> rbind(tt, tt)
a b
1: 1 a
2: 1 a
3: 2 b
4: 2 b
5: 1 a
6: 1 a
7: 2 b
8: 2 b