我正在尝试简单地对根据几十年来的每日数据计算出的一组月平均降雨量数据进行排序。目前,月份按字母顺序排序 - 即四月、八月、...、九月,遵循使用聚合函数计算平均值的输出。
当然,我要求它们按时间顺序排序,然后按年份排序。我花了几个小时搜索有关功能的在线帮助以及 StackExchange 等上类似但略有不同的问题的解释,但一直很难找到任何有效的解决方案。
我已经好几年没有使用R了,所以我已经生疏了,并且不再有可以求助的同事。 如果有人可以提供帮助,我将非常感激。 谢谢。
我根据数据框
rainfall.df
计算月平均值,其中包含每日降雨量、完整的每日日期,以及从日期中提取的月份和年份:
MonthlyAverageRF <- aggregate(rainfall.df$Rainfall ~ Month + Year, rainfall.df, mean)
每月平均 RF 的捐赠:
Month Year rainfall.df$Rainfall
1 April 1961 2.2133333
2 August 1961 2.6225806
3 December 1961 2.0709677
4 February 1961 1.6571429
5 January 1961 2.4741935
6 July 1961 2.1645161
7 June 1961 0.8400000
8 March 1961 0.7225806
9 May 1961 0.6709677
10 November 1961 2.0966667
11 October 1961 3.0193548
12 September 1961 1.8100000
这就是我需要的,当然,月份是按字母顺序排序的。
我尝试使用以下内容按月按时间顺序对其进行排序:
OrderedMonthlyRFAverage <- factor(MonthlyAverageRF, levels = MonthsInChronOrder)
其中
MonthsInChronOrder
是按字母顺序排列的月份列表。
并且,遵循另一个论坛字符串
OrderedMonthlyRFAverage <- arrange(factor(MonthlyAverageRF$Month, levels = month.name))
显然我遇到了一些简单的错误,因此非常感谢任何帮助。
library(tidyverse)
# Create example dataset
rainfall.df <- data.frame(
Month = c("April", "August", "December", "February", "January",
"July", "June", "March", "May", "November",
"October", "September"),
Year = rep(1961, 12),
Rainfall = c(2.2133333, 2.6225806, 2.0709677, 1.6571429, 2.4741935,
2.1645161, 0.8400000, 0.7225806, 0.6709677, 2.0966667,
3.0193548, 1.8100000)
)
# Convert Month to a factor with specific order
rainfall.df$Month <- factor(rainfall.df$Month, levels = month.name)
# Arrange the dataframe by Year and Month
rainfall.df <- rainfall.df %>%
arrange(Year, Month)
# Inspect the sorted dataframe
rainfall.df
#> Month Year Rainfall
#> 1 January 1961 2.4741935
#> 2 February 1961 1.6571429
#> 3 March 1961 0.7225806
#> 4 April 1961 2.2133333
#> 5 May 1961 0.6709677
#> 6 June 1961 0.8400000
#> 7 July 1961 2.1645161
#> 8 August 1961 2.6225806
#> 9 September 1961 1.8100000
#> 10 October 1961 3.0193548
#> 11 November 1961 2.0966667
#> 12 December 1961 2.0709677
创建于 2024-06-26,使用 reprex v2.1.0