0

我对 R 相当陌生,如果这是一个相对简单的问题,我很抱歉。我正在尝试以 csv 格式获取数据并尝试绘制一个变量(下面列为 PMAJ.ug.per.m3)与时间子集(下面列为 PM.Time)。我提供了以下数据的样本。

   X    Site    PM.Time PMAJ.ug.per.m3
1   Run8     09:34:09   168  
2   Run8     09:34:19   32  
3   Run8     09:34:29   34  
4   Run8     09:34:39   26  
5   Run8     09:34:49   24  
6   Run8     09:34:59   30  
7   Run8     09:35:09   23  
8   Run8     09:35:19   17  
9   Run8     09:35:29   21  
10  Run8     09:35:39   20  
11  Run8     09:35:49   37  
12  Run8     09:35:59   26  
13  Run8     09:36:09   16  
14  Run8     09:36:19   21  
15  Run8     09:36:29   69  

我的代码如下,并且正在生成下面列出的错误:

with(subset(aim1dat,PM.Time< 09:35:59 & PM.Time> 09:34:19), plot(PM.Time,PMAJ.ug.per.m3))

Error in axis(1, at = (xat[1L:nx] + xat[2L:(nx + 1L)] - off)/2, labels = xaxlabels,  : 
  no locations are finite
In addition: Warning messages:
1: In 9:35:59 : numerical expression has 27 elements: only the first used
2: In Ops.factor(PM.Time, 9:35:59) : < not meaningful for factors
3: In 9:34:19 : numerical expression has 26 elements: only the first used
4: In Ops.factor(PM.Time, 9:34:19) : > not meaningful for factors

其余数据的时间采用 24 小时格式(即 09:00:00 到 15:00:00)。我不知道如何纠正这个问题。有什么建议么?

谢谢。

4

1 回答 1

2

您应该将您的因素强制转换为有效的日期/时间格式。例如,在这里我将所有日期转换为POSIXct

aim1dat$PM.Time <- as.POSIXct(aim1dat$PM.Time, format='%H:%M:%S')

dat <- subset(aim1dat,PM.Time<  as.POSIXct("09:35:59", format='%H:%M:%S') & 
               PM.Time>  as.POSIXct("09:34:19", format='%H:%M:%S'))
with(dat,plot(PM.Time,PMAJ.ug.per.m3,type='l'))

在此处输入图像描述

于 2013-07-23T03:11:47.380 回答