我想按时间顺序将降雨时间序列数据组织到每个雨计(按代码列)中。雨量计在同一列中,与示例中的行相同,还有包含月份、年份和降雨信息的列。
在组织数据后,我需要执行统计测试,循环可以使它更容易,因为有大量的雨量计。是否有一种通过rain_gauge列中的代码循环指定每个雨量计作为测试中要重复的变量的方法?
rain_gauge = c(rep(1442032, 40), rep(1442035, 30), rep(1442036, 30),rep(1442039, 45),rep(1442049, 40),rep(1442032, 40),rep(1442045, 35))
year = runif(260, 1978,2020)
month = runif(260,1,12)
rainfall = runif(260, 50,202)
df = data.frame(rain_gauge, year, month, rainfall)#data frame to be organized in chronological order by "code" category
head(df)
#Examples of tests to apply to the series of each rain gauge in the rain_gauge column.
library(modifiedmk)
mmkh(as.vector(subset(df,rain_gauge=="1442032"))$rainfall)
pvalue_mk = mmkh(as.vector(subset(df,rain_gauge=="1442032"))$rainfall)[[2]]#Result to be save in a data frame results
library(tseries)
adf.test(subset(df,rain_gauge=="1442032")$rainfall)
pvalue_df = adf.test(subset(df,rain_gauge=="1442032")$rainfall)[[2]]#Result to be save in a data frame results非常感谢!
发布于 2022-04-11 21:08:10
考虑by (面向对象的tapply包装器),它允许您按因子对数据帧进行切片,并在子集上运行进程以返回简化的对象(即向量、矩阵)或任何输出的列表:
library(modifiedmk)
library(tseries)
get_pvalues <- function(sub) {
mmkh_obj <- mmkh(sub$rainfall)
adf_obj <- adf.test(sub$rainfall)
# NAMED VECTOR
c(pvalue_mmkh = mmkh_obj[, "p.value"], pvalue_adf = adf_obj[, "p.value"])
}
# NAMED MATRIX
pvalues_matrix <- by(df, df$rain_gauge, get_pvalues)https://stackoverflow.com/questions/71833291
复制相似问题