gpt4 book ai didi

r - bind_rows 到每组 tibble

转载 作者:行者123 更新时间:2023-12-03 20:16:54 26 4
gpt4 key购买 nike

考虑以下两个小标题:

library(tidyverse)
a <- tibble(time = c(-1, 0), value = c(100, 200))
b <- tibble(id = rep(letters[1:2], each = 3), time = rep(1:3, 2), value = 1:6)

所以 ab具有相同的列和 b有一个名为 id 的附加列。
我想做以下事情:组 b来自 id然后添加小标题 a在每个组的顶部。
所以输出应该是这样的:
# A tibble: 10 x 3
id time value
<chr> <int> <int>
1 a -1 100
2 a 0 200
3 a 1 1
4 a 2 2
5 a 3 3
6 b -1 100
7 b 0 200
8 b 1 4
9 b 2 5
10 b 3 6

当然,有多种解决方法可以实现这一点(例如循环)。但就我而言,我有大量 ID 和大量列。
如果有人能指出我在 tidyverse 中的解决方案的方向,我将不胜感激。

谢谢

最佳答案

我们可以展开数据框aid来自 b然后 bind_rows他们在一起。

library(tidyverse)

a2 <- expand(a, id = b$id, nesting(time, value))
b2 <- bind_rows(a2, b) %>% arrange(id, time)
b2
# # A tibble: 10 x 3
# id time value
# <chr> <dbl> <dbl>
# 1 a -1 100
# 2 a 0 200
# 3 a 1 1
# 4 a 2 2
# 5 a 3 3
# 6 b -1 100
# 7 b 0 200
# 8 b 1 4
# 9 b 2 5
# 10 b 3 6

关于r - bind_rows 到每组 tibble,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51286239/

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