这似乎是一个相当简单的问题,但我无法找到一个简单的解决方案:
我想重复一次data.frame(i)如下:
我的初始data.frame:
i <- data.frame(c("A","A","A","B","B","B","C","C","C"))
i
打印i会导致:
1 A
2 A
3 A
4 B
5 B
6 B
7 C
8 C
9 C
我想如何重复元素(第一列上的数字只是为了便于理解/查看)
i
1 A
2 A
3 A
4 B
5 B
6 B
7 C
8 C
9 C
1 A
2 A
3 A
4 B
5 B
6 B
7 C
8 C
9 C
我尝试使用:
i[rep(seq_len(nrow(i)), each=2),]
但是它提供了这样的输出(第一列上的数字只是为了便于理解/查看):
1 A
2 A
3 A
1 A
2 A
3 A
4 B
5 B
6 B
4 B
5 B
6 B
7 C
8 C
9 C
7 C
8 C
9 C
请帮忙!
答案 0 :(得分:2)
不确定这是否解决了您的问题,但是要获得所需的输出您可以简单地重复整个序列:
i <- c("A","A","A","B","B","B","C","C","C")
i2 <- rep(i,2)
#> i2
# [1] "A" "A" "A" "B" "B" "B" "C" "C" "C" "A" "A" "A" "B" "B" "B" "C" "C" "C"
由于您正在处理数据框,因此可以使用稍加修改的变体:
i <- data.frame(c("A","A","A","B","B","B","C","C","C"))
i2 <- rep(i[,1],2)
答案 1 :(得分:1)
您可以使用rbind(i, i)
。这有用吗?
答案 2 :(得分:1)
如果您正在使用数据框,此代码也可以正常工作:
i[rep(1:nrow(i), 5), ,drop=F]