目标:绘制时间序列。
问题:X轴数据当然被视为一个字符,我将字符转换为日期时遇到了问题。
new.df <- df %>%
group_by(Month, Year) %>%
summarise(n = n())
new.df <- new.df %>%
unite(Date, Month, Year, sep = "/") %>%
mutate(Total = cumsum(n))
所以,我最终得到一个如下所示的数据框:
Date n Group Total
8/2010 1 1 1
9/2010 414 1 415
etc
我正在尝试将Date列转换为Date格式。该列是一个字符类。所以,我试着做了
new.df$Date <- as.Date(New.Patients$Date, %m/%Y)
但是,当我这样做时,它会将整个Date列替换为NA。
我不确定这是不是因为我的单位数月份日期前面没有0。我做了unite()函数只是因为我认为它可以使它更容易,但它可能不会。
我最初使用lubridate包创建了Year / Month变量,但我不确定是否可以在此处加入。如果有人能告诉我如何,奖励积分。
我将不胜感激任何帮助或指导。我敢肯定,我现在只是一个大脑屁并不是那么难。
答案 0 :(得分:4)
您可以尝试这样:
library(zoo) # for yearmon
new.df$Date <- as.yearmon(New.Patients$Date, format="%m/%Y")
但如果你确实需要它为as.Date那么我猜你必须定义一天(例如01)@lukeA在评论中建议。
答案 1 :(得分:2)
正如lukeA在评论中指出的那样,我的问题是as.Date函数需要一天在字符串中的某个位置。
因此,只需将“01”(或者我认为几乎任何其他两位数组合都可以使用)粘贴到每个日期的前面就可以解决问题。