R语言DataFrame日期列升序排序失败,求可行解决方法
解决DataFrame按日期升序排序的问题
你的代码未生效,大概率是列名大小写不匹配导致的——你的DataFrame日期列是Date(首字母大写),但代码里用了df$date(小写),R对变量名大小写敏感,因此无法正确识别目标列。
以下是两种可行的解决方案:
方案一:基础R修正写法
先修正列名匹配问题,再完成排序(建议先将日期列转为日期类型,避免后续操作出错):
# 将Date列转换为日期格式 df$Date <- as.Date(df$Date, format = "%d.%m.%Y") # 按Date列升序排序 df_sorted <- df[order(df$Date), ]
方案二:用dplyr包(更简洁直观)
如果习惯tidyverse风格,用dplyr的arrange()函数可以一步完成转换与排序:
library(dplyr) # 转换日期类型并按升序排序 df_sorted <- df %>% mutate(Date = as.Date(Date, format = "%d.%m.%Y")) %>% arrange(Date) # 若需降序排序,可改为arrange(desc(Date))
排序后的最终结果示例:
Date Temp_value 1 2019-12-31 135 2 2020-03-01 100 3 2020-03-05 111 4 2020-03-08 112 5 2020-03-09 10
内容的提问来源于stack exchange,提问作者Bella_18
相关产品推荐
相关产品推荐

