我遇到将月份和年份列合并为日期格式的问题
n month year Score
35 01 2013 1.07
29 02 2013 3.09
31 03 2013 1.08
.....
我做了以下尝试,但只获得了一列NAs:
df$date <- as.Date(with(df, paste(df$year, df$month,sep="-")), "%Y-%m")
df$Date <- with(df, sprintf("%Y-%m", year, month))
df$Date <- as.yearmon(paste(df$year, df$month), "%Y %m")
我也在努力创建一个时间序列条形图,其中包含&#34;分数&#34;数据作为条和&#34; n&#34;数据在同一轴上绘制线图
N.B。
lapply(df, class)
显示
的输出$n
[1] "integer"
$month
[1] "character"
$year
[1] "character"
$Score
[1] "numeric"
答案 0 :(得分:0)
要使as.Date
生成有效日期,您还需要提供一天。
测试数据
df = read.table(text = "n month year Score
35 01 2013 1.07
29 02 2013 3.09
31 03 2013 1.08", header = TRUE, sep = " ")
df$month = paste0("0", df$month)
<强>转换强>
df$date <- as.Date(paste(df$year, df$month, "01", sep="-"), "%Y-%m-%d")
>df$date
[1] "2013-01-01" "2013-02-01" "2013-03-01"
<强>剧情强>
您的分数和n值太大,无法在同一图表上以相同比例绘制:
library(ggplot2)
ggplot(data = df, aes(x = date, y = Score)) +
geom_col(fill = "gray60") +
geom_line(aes(y = n))
您可以对比例进行标准化,例如将y值除以得分和n个组分的最大值(可能用每个图表标记条形和点数及其实际值),或者将图表分开,或者取一些其他动作可以让你在它们如此不同时进行绘图我留给你决定。