r - 对 R 中单列的重叠行求和

标签 r sum plyr tapply

我试图对 R 中多行中同一列的值求和,但每一行都落入 1 或 2 个所需的输出行,因此我很难使用 ddplytapply成功。

我有三角形样线数据,其中在每个顶点(点 1、3 和 5)以及沿每条边的中间(点 2、4 和 6)采集样本点。我试图总结沿三角形每条边收集的数据:即边 A 是点 1 + 2 + 3 的总和; B 段是点 3 + 4 + 5 的总和; C 段是点 5 + 6 + 1 的总和。

我的数据格式为:

Transect <- c(rep("T001",6),rep("T002",6),rep("T003",6))
Point <- rep(seq(1,6,1),3)
Area <- c(rep(3000, 8), 2500, 2000, rep(3000,4), 1000, rep(3000,3))
df <- data.frame(Transect, Point, Area)

期望的输出是:

Transect2 <- c(rep("T001",3),rep("T002",3),rep("T003",3))
Leg <- rep(c("A", "B", "C"),3)
Total.Area <- c(rep(9000,3), 8500, 7500, 9000, 7000, 7000, 9000)
df.out <- data.frame(Transect2, Leg, Total.Area)

提前感谢您的帮助,如果问题标题措辞不当,我们深表歉意,我不知道如何准确描述这个问题!

最佳答案

使用dplyrreshape2:

library(dplyr)
library(reshape2)

df %>% group_by(Transect) %>%
       summarise(A = sum(Area[Point %in% c(1, 2, 3)]),
                 B = sum(Area[Point %in% c(3, 4, 5)]),
                 C = sum(Area[Point %in% c(5, 6, 1)])) %>%
       melt()

关于r - 对 R 中单列的重叠行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207910/

相关文章:

r - 提取字符和空格之间的元素

python - 根据条件创建求和行

r - ddply 总结比例计数

r - 调用其中的函数时如何获取R脚本文件名?

r - 在 R 中煨 : Modelling changes in server capacity based on queue length and duration

r - 根据向量中的标记制作列表

regex - R:strsplit 中的正则表达式(查找 ", "后跟大写字母)

python - 基于多索引求和列值

mysql group by aggregation as 列

r - 将 lapply 结果转换为 r 中的单个数据帧