基于行长度的列总和

时间:2014-09-14 10:58:14

标签: r

我想根据给定的行长度计算列总和。例如,我有3行[(day,1:181),GDD,Temp])。我试图计算GDD总和,如果行长度是1:104,例如。在另一种情况下,行长度为1:82。

示例:

Day GDD Temp
1   19.77   20.31
2   18.4    19.12
3   16.91   17.7
4   16.46   17.24
5   16.88   17.57
6   18.58   19.25
7   17.31   17.89
8   16.56   17.19
9   15.5    16.15
10  15.78   16.58
.   .   .
.   .   .
.   .   .
.   .   .

有人可以帮我计算列数。我需要做1000个不同的行长度。 提前致谢, RV

1 个答案:

答案 0 :(得分:0)

如果您想尝试multiple行长

  fun1 <- function(data, rowind, Col){
             sum(data[rowind, Col], na.rm=TRUE) #@David Arenburg's suggestion
              }

  set.seed(42)
  dat1 <- data.frame(Day=1:1000, GDD=rnorm(1000,20,5), Temp= rnorm(1000,22,8))

创建具有不同行长度的列表,例如:

  lst1 <- list(1:10, 1:50, 5:25, 3:80)
  sapply(lst1, function(x) fun1(dat1, x, "GDD"))
  #[1]  227.3648  991.0821  434.4308 1564.0305