gpt4 book ai didi

重复 data.frame N 次并添加列

转载 作者:行者123 更新时间:2023-12-01 08:23:26 26 4
gpt4 key购买 nike

我有以下数据框,我想重复 N 次

dc <- read.table(text = "from    1    2    3    4    5
1 0.01 0.02 0.03 0.04 0.05
2 0.06 0.07 0.08 0.09 0.10
3 0.11 0.12 0.13 0.14 0.15
4 0.16 0.17 0.18 0.19 0.20
5 0.21 0.22 0.23 0.24 0.25", header = TRUE)

n<-20
ddr <- NA

for(i in 1:n) {
ddr <- rbind(ddr, cbind(dc,i))
}

因此,我想收到:

from   X1   X2   X3   X4   X5  i
1 0.01 0.02 0.03 0.04 0.05 1
2 0.06 0.07 0.08 0.09 0.10 1
3 0.11 0.12 0.13 0.14 0.15 1
4 0.16 0.17 0.18 0.19 0.20 1
5 0.21 0.22 0.23 0.24 0.25 1
1 0.01 0.02 0.03 0.04 0.05 2
2 0.06 0.07 0.08 0.09 0.10 2
3 0.11 0.12 0.13 0.14 0.15 2
4 0.16 0.17 0.18 0.19 0.20 2
5 0.21 0.22 0.23 0.24 0.25 2
.............................
1 0.01 0.02 0.03 0.04 0.05 20
2 0.06 0.07 0.08 0.09 0.10 20
3 0.11 0.12 0.13 0.14 0.15 20
4 0.16 0.17 0.18 0.19 0.20 20
5 0.21 0.22 0.23 0.24 0.25 20

矩阵必须重复N次,并加上重复次数。

对于这个问题是否有正确的解决方案(在 R 中执行此操作的简单函数)?在我的情况下,如果未声明 ddr (ddr<-NA),则脚本不起作用。谢谢!

最佳答案

您可以使用 rep()复制行索引,并创建重复编号列。

cbind(dc[rep(1:nrow(dc), n), ], i = rep(1:n, each = nrow(dc)))

让我们分解一下:

  • dc[rep(1:nrow(dc), n), ]使用 i 中的复制行索引[ 的行索引值用于数据框
  • rep(1:n, each = nrow(dc))复制长度为 n 的序列值(value) nrow(dc)每次
  • cbind(...)将两者组合成一个数据框

正如@HubertL 在评论中指出的那样,这可以进一步简化为

cbind(dc, i = rep(1:n, each = nrow(dc)))

感谢回收的魔力。请去给他投票。

关于重复 data.frame N 次并添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46083117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com