我有一個 60 年期間每日積雪深度值的資料系列。我想查看每個季節積雪深度高于 30 厘米的天數,例如從 1980 年 7 月到 1981 年 6 月。這個代碼必須是什么樣的?我知道如何單獨計算每個季節高于 30 厘米的每日值,但不知道代碼如何計算所有季節。我已經在 wetransfer 上上傳了我的資料框:Dataframe
非常感謝您提前提供的幫助。佩尼拉
uj5u.com熱心網友回復:
像這樣的東西會起作用
library(dplyr)
library(lubridate)
df<-read.csv('BayrischerWald_Brennes_SH_daily_merged.txt', sep=';')
df_season <-df %>%
mutate(season=(Day %>% ymd() - days(181)) %>% floor_date("year") %>% year())
df_group_by_season <- df_season %>%
filter(!is.na(SHincm)) %>%
group_by(season) %>%
summarize(days_above_30=sum(SHincm>30)) %>%
ungroup()
df_group_by_season
#> # A tibble: 61 × 2
#> season days_above_30
#> <dbl> <int>
#> 1 1961 1
#> 2 1962 0
#> 3 1963 0
#> 4 1964 0
#> 5 1965 0
#> 6 1966 0
#> 7 1967 129
#> 8 1968 60
#> 9 1969 107
#> 10 1970 43
#> # … with 51 more rows
由reprex 包于 2022-01-15 創建(v2.0.1)
uj5u.com熱心網友回復:
這是使用該aggregate()功能的一種方法。讀取資料后,將 Date 欄位轉換為日期物件并洗掉日期缺失值的行:
snow <- read.table("BayrischerWald_Brennes_SH_daily_merged.txt", header=TRUE, sep=";")
snow$Day <- as.Date(snow$Day)
str(snow)
# 'data.frame': 51606 obs. of 2 variables:
# $ Day : Date, format: "1961-11-01" "1961-11-02" "1961-11-03" "1961-11-04" ...
# $ SHincm: int 0 0 0 0 2 9 19 22 15 5 ...
snow <- snow[!is.na(snow$Day), ]
str(snow)
# 'data.frame': 21886 obs. of 2 variables:
# $ Day : Date, format: "1961-11-01" "1961-11-02" "1961-11-03" "1961-11-04" ...
# $ SHincm: int 0 0 0 0 2 9 19 22 15 5 ...
請注意,超過一半的資料缺少日期值。現在我們需要按滑雪季節劃分資料:
brks <- as.Date(paste(1961:2022, "07-01", sep="-"))
lbls <- paste(1961:2021, 1962:2022, sep="/")
snow$Season <- cut(snow$Day, breaks=brks, labels=lbls)
現在我們aggregate()用來獲取超過 30 英寸積雪的天數:
days30cm <- aggregate(SHincm~Season, snow, subset=snow$SHincm > 30, length)
colnames(days30cm)[2] <- "Over30cm"
head(days30cm, 10)
# Season Over30cm
# 1 1961/1962 1
# 2 1967/1968 129
# 3 1968/1969 60
# 4 1969/1970 107
# 5 1970/1971 43
# 6 1972/1973 101
# 7 1973/1974 119
# 8 1974/1975 188
# 9 1975/1976 126
# 10 1976/1977 112
此外,您還可以獲得其他統計資料,例如當季的最大積雪量或積雪的總厘米數:
maxsnow <- aggregate(SHincm~Season, snow, max)
totalsnow <- aggregate(SHincm~Season, snow, sum)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/415523.html
標籤:
下一篇:兩個組件,一個具有固定寬度
