嗨,我有这个输入文件 http://www.mediafire.com/file/a4yda7zmwvpd9zi/data.xlsx/file
MIN和MAX列是xls文件中的Date类型,并且在as.Date之后的Class是Date时,类型也应该是它的两倍..但是当我运行以下代码时
library(ggplot2)
library(readxl)
out <- read_xlsx("C:/data.xlsx")
out
out$MIN <- as.Date(out$MIN)
out$MAX <- as.Date(out$MAX)
class(out$MIN)
#out$MIN <- as.Date(out$MIN, format = "%d/%m/%Y")
library(dplyr)
out %>%
group_by(SEX) %>%
tidyr::gather(key, value, -SEX) %>%
ggplot(aes(SEX, value)) +
geom_line(aes(color = SEX)) +
coord_flip() +
scale_y_date(breaks = c(out$MIN, out$MAX)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
out
我不断收到错误date_trans works with objects of class Date only
我尝试了不同的格式..甚至将excel原始数据类型更改为不同的日期格式,但始终收到相同的错误。.
答案 0 :(得分:0)
您可以尝试:
out %>%
tidyr::gather(key, value, -one_of(c("ID", "SEX"))) %>%
ggplot(aes(ID, value, group = ID)) +
geom_line(aes(color = SEX)) +
coord_flip() +
scale_y_date(breaks = seq(min(out$MIN), max(out$MAX), by = "year")) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
尽管我怀疑这种图表的用处,以及您如何解决日期的比例(我从最小到最大都按年序列),但这取决于您。