【发布时间】:2021-12-14 18:19:13
【问题描述】:
我有一个数据集,其中包含按两个变量分组的三列。
df <- tibble(paper = rep(c("A_2012", "B_2019"), each = 5),
question = rep(c(1,2,3,4,5), 2),
rate = c(4.545455, 4.010000, 4.672727, 4.100000, 3.418182, 3.060000,
4.563636, 3.760000, 4.636364, 4.000000))
> df %>% group_by(question) %>%
select(question, paper, rate) %>%
arrange(question)
# A tibble: 10 x 3
# Groups: question [5]
question paper rate
<dbl> <.chr> <dbl>
1 1 A_2012 4.55
2 1 B_2019 3.06
3 2 A_2012 4.01
4 2 B_2019 4.56
5 3 A_2012 4.67
6 3 B_2019 3.76
7 4 A_2012 4.1
8 4 B_2019 4.64
9 5 A_2012 3.42
10 5 B_2019 4
我需要在组的“速率”值内执行操作。但实际上,我不知道如何使用tidyverse 样式编写代码。在这个例子中,我会得到每个问题的差异(paperB - paperA):
> df_result
# A tibble: 5 x 2
question diff_rate
<dbl> <dbl>
1 1 -1.49
2 2 0.55
3 3 -0.91
4 4 0.54
5 5 0.58
我尝试过使用pivot_wider然后进行一些操作,但实际上我有 54 个不同的值用于变量纸,所以效率不高。
任何帮助都非常感谢。
【问题讨论】: