有没有一种方法可以汇总一列中的特定行?

问题描述

A sample picture attached The sample dataset file 我有一个数据集(请参阅附件),我希望根据特定条件对数字列'tdiff'求和,例如(1 + 2),第(3 + 4)行,但不是行(11,12,13,14)。 我尝试过这些但没有运气,

xx<- chaPe [rowSums(1:2,3:4,11,14,15:16),]
xx<- sum(chaPe $tdiff [c(1:2,15:16)],)

基本上,如果您查看“ xsampa”列,则只需要对“ tdiff”列中的“ p”和“ A”的数值求和。

例如,预期结果是第(1 +2)行,即(0.068 + 0.011)= 0.079。 另外,假定除“ rn”列外,它们的值相同,这对其他列中的值有何影响(这并不重要)。

我是R的新手,因此我将无法解决任何帮助。谢谢。

解决方法

只要'p'出现,您就可以创建一个新组,以便前2行构成一个组,然后再形成另外2组,并按原样11:14行。对于每个组,我们可以sum的{​​{1}}值。对于其他列,您可以决定要保留哪些值。例如,在下面,我保留列sum_tdifffirst的{​​{1}}值。

Filename
,

另一种方法是将数据分组到Filename上,下面是一个示例

library(dplyr)
result <- chaPe %>%
  group_by(Filename) %>%
  summarise(sum = sum(tdiff))
 Filename             sum
  <chr>              <dbl>
1 AK_chape.TextGrid 0.0800
2 DS_chape.TextGrid 0.0844
3 MS_chape.TextGrid 0.0834
4 NS_chape.TextGrid 0.0884
5 PS_chape.TextGrid 0.0838
6 RS_chape.TextGrid 0.0877