我正在研究一个用于水文建模数据的数据分析项目。我将结果导出为.csv格式,并作为数据帧(Out_1)集成到R中。之后,我选择了一些需要的变量,如下所示。
Out_1 <- read.csv("Outlets_1.csv",header = TRUE)
Out_1s <- select(Out_1,SUB,YEAR,MON,AREAkm2,EVAPcms,FLOW_OUTcms,SED_OUTtons,YYYYMM)
str(Out_1s)
'data.frame': 480 obs. of 8 variables:
$ SUB : int 19 19 19 19 19 19 19 19 19 19 ...
$ YEAR : int 1983 1983 1983 1983 1983 1983 1983 1983 1983 1983 ...
$ MON : int 1 2 3 4 5 6 7 8 9 10 ...
$ AREAkm2 : int 1025 1025 1025 1025 1025 1025 1025 1025 1025 1025 ...
$ EVAPcms : num 0.00601 0.00928 0.01696 0.01764 0.02615 ...
$ FLOW_OUTcms: num 2.31 2.84 3.16 18.49 34.42 ...
$ SED_OUTtons: num 215 308 416 3994 11440 ...
$ YYYYMM : int 198301 198302 198303 198304 198305 198306 198307 198308 198309 198310 ...
typeof(Out_1s$YEAR)
[1] "integer"
typeof(Out_1s$MON)
[1] "integer"
typeof(Out_1s$YYYYMM)
[1] "integer"
我要尝试做的是基于ggplot2创建图形摘要,基于结合Out_1s.YEAR和Out_1s.MON列或将Out_1s.YYYYMM变量标识为YYYY-MM或MM-YYYY。
Out_1s$Date <- NA
typeof(Out_1s$Date)
[1] "character"
Out_1s$Date <- paste(Out_1s$YEAR,Out_1s$MON, sep = "-")
as.Date.character(Out_1s$Date, "%Y-%m")
graph1 <- ggplot(Out_1s, aes(Date, FLOW_OUTcms ))
graph1 + geom_line()
结果实际上不是预期的。
答案 0 :(得分:1)
这里有两个问题。
首先,Date对象是年,月和日。要解决此问题,请在粘贴语句中添加“ 01”。
Out_1s$Date <- paste(Out_1s$YEAR,Out_1s$MON, "01", sep = "-")
在您的情况下,由于日期不包括日期,因此as.Date
函数将返回一系列NA(空域)
第二,需要将as.Date
函数的结果重新分配回原始列。
Out_1s$Date <- as.Date.character(Out_1s$Date, "%Y-%m-%d")