R 根据列名称作为日期进行数据帧排序

R 根据列名称作为日期进行数据帧排序,r,date,R,Date,我一直在努力解决这个显然很简单的问题,我有一个数据框,列名称如下: names <- c("2013-1", "2013-10", "2013-11", "2013-12", "2013-2", "2013-3", "2013-4", "2013-5", "2013-6", "2013-7", "2013-8", "2013-9", "2014-1", "2014-2", "2014-3") 但是R显然不认识这个日期格式,我得到了NA的。我仍然坚持这一点,无论我尝试,所以任何帮

我一直在努力解决这个显然很简单的问题,我有一个数据框,列名称如下:

  names <-  c("2013-1", "2013-10", "2013-11", "2013-12", "2013-2", 
"2013-3", "2013-4", "2013-5", "2013-6", "2013-7", "2013-8", "2013-9", 
"2014-1", "2014-2", "2014-3")
但是R显然不认识这个日期格式,我得到了NA的。我仍然坚持这一点,无论我尝试,所以任何帮助将非常感谢

谢谢

试试看

as.Date(paste(names, "-01", sep=""), format="%Y-%m-%d")
R应该把它看作一个日期

编辑:如果要保留原始格式,但在1和9之间插入一个零,则可以使用strftime:

试一试

R应该把它看作一个日期

编辑:如果要保留原始格式,但在1和9之间插入一个零,则可以使用strftime:


你也可以看看动物园包装中的as.yearmon。来自帮助文本:yearmon是一个表示每月数据的类

library(zoo)
x <- as.yearmon(names, format = "%Y-%m")
x

# sort and format output according to taste, e.g.
format(sort(x), "%Y-%m")
# [1] "2013-01" "2013-02" "2013-03" "2013-04" "2013-05" "2013-06" "2013-07" "2013-08" "2013-09"
# [10] "2013-10" "2013-11" "2013-12" "2014-01" "2014-02" "2014-03"

你也可以看看动物园包装中的as.yearmon。来自帮助文本:yearmon是一个表示每月数据的类

library(zoo)
x <- as.yearmon(names, format = "%Y-%m")
x

# sort and format output according to taste, e.g.
format(sort(x), "%Y-%m")
# [1] "2013-01" "2013-02" "2013-03" "2013-04" "2013-05" "2013-06" "2013-07" "2013-08" "2013-09"
# [10] "2013-10" "2013-11" "2013-12" "2014-01" "2014-02" "2014-03"

它能工作,但不是我想要的。手动添加日期意味着R无法理解yyyy-mm日期格式?如果可能的话,我更愿意保留原始格式。它可以工作,但不完全是我想要的。手动添加日期意味着R无法理解yyyy-mm日期格式?如果可能的话,我更愿意保留原始格式。谢谢,选择它作为答案是因为它能更快、更干净地解决我的问题。谢谢,选择它作为答案是因为它能更快、更干净地解决我的问题。
library(zoo)
x <- as.yearmon(names, format = "%Y-%m")
x

# sort and format output according to taste, e.g.
format(sort(x), "%Y-%m")
# [1] "2013-01" "2013-02" "2013-03" "2013-04" "2013-05" "2013-06" "2013-07" "2013-08" "2013-09"
# [10] "2013-10" "2013-11" "2013-12" "2014-01" "2014-02" "2014-03"