【发布时间】:2018-12-11 00:35:20
【问题描述】:
这是我的可重现代码:
df <- data.frame(x = c(1, 2), y = c(3, 4))
df1 <- df %>% mutate(z = 1)
df2 <- df %>% mutate(z = 2)
df3 <- df %>% mutate(z = 3)
df <- rbind(df1, df2, df3)
df
我将原始数据框 df 重复 3 次,同时添加一列,其中列中的数字表示重复。在我的用例中,我必须这样做超过 3 次。我可以使用循环,但有没有更简洁的方法?我想我不能使用 expand.grid。
【问题讨论】:
-
cbind(df, z = rep(1:n, each = nrow(df)))其中n是您想要的重复次数。 -
@qdread 这通常不起作用,因为
cbind转换为矩阵,而不是 data.frame -
@CoreyLevinson 我认为
cbind有一个data.frame方法,所以它应该可以工作。 -
@CoreyLevinson 只要你从一个数据框开始,
cbind就会给你一个数据框。class(cbind(mtcars, 1)).
标签: r