【发布时间】:2021-11-19 02:16:17
【问题描述】:
鉴于如下所示的 tibble,我正在尝试使用 Tidyverse 根据两个字段中的 Item 的值执行条件求和。具体来说,对于foo 和bar,我想将与项目a 对应的值与项目b 的值相加,然后删除前者的行。我正在寻找的结果如表 2 所示。
data <- tibble(Field = rep(c("foo", "bar"), each=4),
Item = rep(c("a", "b", "c", "d"), 2),
Value = runif(8))
# table 1 # table 2
| Field | Item | Value | | Field | Item | Value |
|-------|------|-----------| |-------|------|-----------|
| foo | a | 0.8167347 | | foo | b | 0.9583989 | <== 0.8167347 + 0.1416642
| foo | b | 0.1416642 | | foo | c | 0.7054814 |
| foo | c | 0.7054814 | | foo | d | 0.1196948 |
| foo | d | 0.1196948 | |--------------------------|
|--------------------------| | bar | b | 0.6177568 | <== 0.3604500 + 0.2573068
| bar | a | 0.3604500 | | bar | c | 0.7003040 |
| bar | b | 0.2573068 | | bar | d | 0.8131556 |
| bar | c | 0.7003040 |
| bar | d | 0.8131556 |
到目前为止,我还没有达到预期的结果。我知道如何使用dplyr 的分组功能来隔离属于这两个字段之一的项目,但我不知道如何选择a 的值并在分组完成后将其与b 相加执行。
【问题讨论】:
标签: r dataframe dplyr tidyverse tibble