【发布时间】:2019-09-18 18:44:23
【问题描述】:
这是我的数据集的一部分,它有 12 年的相似数据,我想计算流出量从 0 变为一个值的累积总和,并将其存储为一个事件。然后我想找到事件的最大值、最小值、平均值和标准差,并按年分组。
例如,在下面的数据集中,有两个事件。每个事件的总和是多少,两个事件的最大值、最小值、平均值和 SD 分别是多少?
Date Outflow
2/2/2014 0
2/2/2014 0
2/2/2014 0.073
2/2/2014 0.096
2/2/2014 0.096
2/2/2014 0.096
2/2/2014 0.015
2/2/2014 0.007
2/2/2014 0.003
2/2/2014 0.002
2/2/2014 0.001
2/2/2014 0.001
2/3/2014 0
2/3/2014 0
2/3/2014 0
2/3/2014 0
2/3/2014 0.022
2/3/2014 0.031
2/3/2014 0.034
2/3/2014 0.036
2/3/2014 0.037
2/3/2014 0.038
2/3/2014 0.038
2/3/2014 0.038
2/3/2014 0.038
2/3/2014 0.104
我已经能够计算每年的事件数量,但我无法计算每个事件的总和。
我已包含用于计算每年事件数量的代码。 LID_yearly 是数据集按年份拆分并运行代码的时间。
m=rep(0,12) ## intialize a counter
x="no_value"
for(k in 1:length(LID_yearly)){
for(i in 1:length(LID_yearly[[k]]$`Surface Runoff`)){
if(LID_yearly[[k]]$`Surface Runoff`[i]==0){
m[k]=m[k]
x="no_value"
}
else if((LID_yearly[[k]]$`Surface Runoff`[i]!=0)&&(x=="no_value")){
m[k]=m[k]+1
x="value"
} else if((LID_yearly[[k]]$`Surface Runoff`[i]!=0)&&(x=="value")){
m[k]=m[k]
x="value"
}
}
}
我想为我正在寻找的每个统计数据(例如,最大值、最小值等)为每年的事件获取一列。
这是我当前的输出。
"Year Sum Max Min Mean SD No.of inflow No. of Outflow
"2007 0 0 NA NA NA 122 0"
"2008 0 0 NA NA NA 106 0"
"2009 0 0 NA NA NA 149 0"
"2010 0 0 NA NA NA 122 0"
"2011 0 0 NA NA NA 125 0"
"2012 0 0 NA NA NA 82 0"
"2013 10 0.226 0.001 0.092 0.077 125 5"
"2014 46 0.325 0.001 0.078 0.073 149 14"
"2015 56 0.26 0.001 0.087 0.069 153 15"
"2016 21 0.135 0.001 0.036 0.029 136 15"
"2017 11 0.22 0.002 0.086 0.068 148 4"
"2018 0 0 NA NA NA 138 0"
这里最后两列是计算事件的数量,但统计数据不是我要查找的,因为它计算的是每个单个值的平均值或最大值,而不是一个事件。
这是我使用 dplyr 使用的代码:
LIDTDFNEW <- LIDnew %>% group_by(year) %>% summarise("Sum of Bypass
Volume"=sum(`Surface Runoff`),
"Maximum Bypass Volume"=max(`Surface Runoff`),
"Minimum Byass Volume"=(if (!all(`Surface Runoff`==0)) min(`Surface
Runoff`[`Surface Runoff`!=0])else NA),
"Average Bypass Volume"= (if(!all(`Surface Runoff`==0)) mean(`Surface
Runoff`[`Surface Runoff`!=0])else NA),
"SD of Byass Volume"=(if (!all(`Surface Runoff`==0)) sd(`Surface
Runoff`[`Surface Runoff`!=0])else NA))
【问题讨论】:
-
感谢您编辑数据集:) @tmfmnk
-
你能更新一下预期的输出吗
-
我已经包含了我当前的输出。
标签: r