【发布时间】:2018-07-27 23:01:44
【问题描述】:
假设我有一个包含多个观察值的数据集。有时一个单一的观察实际上是被浓缩成一个的多个观察。为了跟踪合并了多少观察值,存在一个整数值变量。
我想做的是扭转这个过程。
示例代码:
library(tidyverse)
# Example tibble
df_ex <- tibble(
var1 = seq(1, 3),
var2 = c('Some', 'Random', 'Text'),
var3 = c(1, 3, 2)
)
上面的代码产生以下小标题:
# A tibble: 3 x 3
var1 var2 var3
<int> <chr> <dbl>
1 1 Some 1
2 2 Random 3
3 3 Text 2
在一些 tidyverse 魔法之后,想要的小标题是:
# A tibble: 6 x 3
var1 var2 var3
<dbl> <chr> <dbl>
1 1 Some 1
2 2 Random 1
3 2 Random 1
4 2 Random 1
5 3 Text 1
6 3 Text 1
【问题讨论】:
-
多种方式
df_ex %>% group_by(var1) %>% mutate(var3 = list(rep(1, var3))) %>% unnestordf_ex %>% mutate(var3 = map(var3, ~ rep(1, .x))) %>% unnestortransform(df_ex[rep(seq_len(nrow(df_ex)), df_ex$var3),], var3 = 1)inbase R -
非常好!你想把这个写成答案让我接受吗?