我无法合并slice
和map
。重复行的R - dplyr映射片
我有兴趣做类似this;在我的情况下,这是一个紧凑的人物时期文件转换为长时间(顺序)的人物时期文件。但是,由于我的文件太大,我需要先分割数据。
我的数据是这样的
group id var ep dur
1 A 1 a 1 20
2 A 1 b 2 10
3 A 1 a 3 5
4 A 2 b 1 5
5 A 2 b 2 10
6 A 2 b 3 15
7 B 1 a 1 20
8 B 1 a 2 10
9 B 1 a 3 10
10 B 2 c 1 20
11 B 2 c 2 5
12 B 2 c 3 10
我需要简单说就是(从this答案)
library(dplyr)
dt %>% slice(rep(1:n(),.$dur))
不过,我很感兴趣,引入split(.$group)
。
我该怎么做?
dt %>% split(.$group) %>% map_df(slice(rep(1:n(),.$dur)))
不工作的例子。
我所需的输出是一样的dt %>% slice(rep(1:n(),.$dur))
这是
group id var ep dur
1 A 1 a 1 20
2 A 1 a 1 20
3 A 1 a 1 20
4 A 1 a 1 20
5 A 1 a 1 20
6 A 1 a 1 20
7 A 1 a 1 20
8 A 1 a 1 20
9 A 1 a 1 20
10 A 1 a 1 20
.....
但我需要split
此操作,因为文件太大。
数据
dt = structure(list(group = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor"),
id = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L,
2L, 2L), .Label = c("1", "2"), class = "factor"), var = structure(c(1L,
2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 3L, 3L, 3L), .Label = c("a",
"b", "c"), class = "factor"), ep = structure(c(1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("1", "2",
"3"), class = "factor"), dur = c(20, 10, 5, 5, 10, 15, 20,
10, 10, 20, 5, 10)), .Names = c("group", "id", "var", "ep",
"dur"), row.names = c(NA, -12L), class = "data.frame")
不知道为什么它被downvoted,这看起来像一个有趣的问题(加一) – akrun
我不清楚OP作为输出期望什么(虽然我还没有投票) – hrbrmstr
@hrbrmstr我认为它与链接文章中的相同 – akrun