无法打印R中包含月份的历史记录

无法打印R中包含月份的历史记录,r,date,time-series,histogram,R,Date,Time Series,Histogram,我的数据框中有一个日期变量 > str(gran$Date) Date[1:1368], format: "2014-11-06" "2014-11-05" "2014-11-04" "2014-11-03" "2014-11-02" "2014-11-01" "2014-10-31" ... 当我将直方图打印为: hist(gran$Date, "month") 它不显示每个月。它只显示每年,如下所示 除此之外: 我有一个逻辑变量,如: gran$neg_WS = gran$Ac

我的数据框中有一个日期变量

> str(gran$Date)
 Date[1:1368], format: "2014-11-06" "2014-11-05" "2014-11-04" "2014-11-03" "2014-11-02" "2014-11-01" "2014-10-31" ...
当我将直方图打印为:

hist(gran$Date, "month")
它不显示每个月。它只显示每年,如下所示

除此之外: 我有一个逻辑变量,如:

gran$neg_WS = gran$Act.Rep.WS < 0
我得到以下错误:

> plot(gran$Date[gran$neg_WS], "month")
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ
我不认为这是正确的,因为长度是相同的,即两个变量的长度都是1368

> length(gran$neg_WS)
[1] 1368
> length(gran$Date)
[1] 1368

有什么解决方案吗?

您需要提供一种
格式
来指定R应该如何标记时间轴。这里有一个例子

set.seed(21)
gran <- list(Date = sample(seq(Sys.Date(), by = "months", length.out = 30),
                           1368, replace = TRUE))

with(gran, hist(Date, breaks = "months", format = "%b %Y", las = 2))

绘图(gran$Date[gran$neg_WS],“month”)的错误是简单的用户错误:

  • gran$Date[gran$neg_WS]
    是长度为227的向量(如果您的评论正确)
  • “月”
    是长度为1的字符向量
您要求
plot
对这些变量进行处理,显然它们的长度不同

您的逻辑向量
neg_ws
必须与从中形成的数据具有相同的长度。它将是
TRUE
FALSE
值的向量,具体取决于您使用的数据和子句。要查看有多少是
TRUE
,请在向量上使用
sum()
,该向量使用
TRUE==1的约定

其思想是,您可以使用
neg_WS
索引数据对象,以便仅提供
neg_WS
TRUE
的日期

set.seed(65)
gran$neg_WS <- runif(1368) < 0.5 # example logical vector
with(gran, hist(Date[neg_WS], breaks = "months", format = "%b %Y", las = 2))
set.seed(65)

gran$neg_WS请提供能够重现错误的最小数据集,请参阅以下提供
length(gran$Date[gran$neg_WS])
length(gran$Date[gran$neg_WS])=227我不明白为什么:(请克隆以下repo:example.csv是使用dput()的输出)在数据文件夹中。请使用分析文件夹中的Gran_VS_Portal_ANALYSIS.Rmd获取代码。感谢您的详细回答。
with(gran, hist(Date, breaks = "months", las = 2))
set.seed(65)
gran$neg_WS <- runif(1368) < 0.5 # example logical vector
with(gran, hist(Date[neg_WS], breaks = "months", format = "%b %Y", las = 2))