如何在 R 中对 'mm-yyyy' 格式进行排序?
How to sort 'mm-yyyy' format in R?
日期
01-2018
02-2018
01-2019
02-2019
我试过使用 arrange(df, Date)
它被安排为
01-2018
01-2019
02-2018
02-2019
这是一个基本的 R 选项。我们可以尝试根据文本字符串使用动态日期对数据框进行排序。
df <- data.frame(Date=c("01-2018", "02-2018", "01-2019", "02-2019"),
stringsAsFactors=FALSE)
df[order(as.Date(paste0("01-", df$Date), format="%d-%m-%Y")), ]
[1] "01-2018" "02-2018" "01-2019" "02-2019"
请注意,我通过任意使用一个月的第一天来形成一个完整的日期,对于每个文本日期,使用 as.Date
和正确的格式掩码来生成一个真实的日期。
为获得最佳结果,请考虑将日期存储在适当的日期列中,或者,如果您必须使用文本,请使用至少可以正确排序的 ISO 格式。
日期 01-2018 02-2018 01-2019 02-2019
我试过使用 arrange(df, Date) 它被安排为 01-2018 01-2019 02-2018 02-2019
这是一个基本的 R 选项。我们可以尝试根据文本字符串使用动态日期对数据框进行排序。
df <- data.frame(Date=c("01-2018", "02-2018", "01-2019", "02-2019"),
stringsAsFactors=FALSE)
df[order(as.Date(paste0("01-", df$Date), format="%d-%m-%Y")), ]
[1] "01-2018" "02-2018" "01-2019" "02-2019"
请注意,我通过任意使用一个月的第一天来形成一个完整的日期,对于每个文本日期,使用 as.Date
和正确的格式掩码来生成一个真实的日期。
为获得最佳结果,请考虑将日期存储在适当的日期列中,或者,如果您必须使用文本,请使用至少可以正确排序的 ISO 格式。