gpt4 book ai didi

r - R中基于最大数量的回填数据框

转载 作者:行者123 更新时间:2023-12-04 09:37:26 25 4
gpt4 key购买 nike

我有一个包含多个 ID 和最大值的数据框。

df <- data.frame(id = c("a", "b", "c"), max.number = c(0, 6, 4))

id max.number
1 a 0
2 b 6
3 c 4

我想创建一个新的数据框,为每个 ID 回填到零。它看起来像:

  id     number
1 a 0
2 b 0
3 b 1
4 b 2
5 b 3
6 b 4
7 b 5
8 b 6
9 b 0
10 c 1
11 c 2
12 c 3
13 c 4

我曾尝试通过嵌套的 for 循环来执行此操作,但无法使其正常工作。如果可能的话,我希望在使用 apply 时获得一些指导。

最佳答案

使用 data.table 会很容易表:

# install.packages("data.table")
library(data.table)

df <- data.frame(id = c("a", "b", "c"), max.number = c(0, 6, 4))
dt <- as.data.table(df)
# or directly:
# dt <- data.table(id = c("a", "b", "c"), max.number = c(0, 6, 4))
dt[, .(number=seq(0, max.number)), by=id]

输出:

    id number
1: a 0
2: b 0
3: b 1
4: b 2
5: b 3
6: b 4
7: b 5
8: b 6
9: c 0
10: c 1
11: c 2
12: c 3
13: c 4

关于r - R中基于最大数量的回填数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36851323/

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