使用R中的chron包将日期列与时间列组合起来

使用R中的chron包将日期列与时间列组合起来,r,R,我正在组合一些数据以使用match()函数从一个非常大的数据框中提取特定的交易日期/时间,我完全不明白为什么我的代码不起作用。请注意,日期和时间列是分开的,这也对使用as.POSIXct函数提出了挑战。请看一看: 我就是这样得到这些数据的: Symbol Date Time Open High Low Close Volume Tick.Count 1 USH94 01/3/1994 7:21 114.4062 114.4375 114.3750

我正在组合一些数据以使用match()函数从一个非常大的数据框中提取特定的交易日期/时间,我完全不明白为什么我的代码不起作用。请注意,日期和时间列是分开的,这也对使用as.POSIXct函数提出了挑战。请看一看:

我就是这样得到这些数据的:

  Symbol      Date Time     Open     High      Low    Close Volume Tick.Count
1  USH94 01/3/1994 7:21 114.4062 114.4375 114.3750 114.4062      0          5
2  USH94 01/3/1994 7:22 114.3750 114.4062 114.3125 114.3750      0         11
3  USH94 01/3/1994 7:23 114.3438 114.3750 114.3125 114.3438      0          7
4  USH94 01/3/1994 7:24 114.3125 114.3125 114.2500 114.2812      0         14
5  USH94 01/3/1994 7:25 114.2500 114.2812 114.2188 114.2188      0          6
6  USH94 01/3/1994 7:26 114.1875 114.2500 114.1875 114.2500      0         13
然后,我使用date()和time()函数将列从factors转换为date和time值。在本例中,我还添加了保存为字符串的秒数作为变量a,并且由于时间变化,我添加了一个小时

US$Time <- times(paste(US$Time,a,sep = ':'))+1/24
US$Date <- dates(as.character(US$Date))
一样

然后我尝试将日期和时间与paste()函数结合起来


US$TradeDates您应该使用POSIX格式,这会让您的生活更轻松

您可以使用将
Date
列转换为
POSIXlt

as.POSIXlt(as.character(US$Date), format="%d/%m/%Y")

然后,只需以秒为单位添加
Time
列,其余部分将由
POSIXlt
格式处理。

您应该使用POSIX格式,这将使您的生活更轻松

您可以使用将
Date
列转换为
POSIXlt

as.POSIXlt(as.character(US$Date), format="%d/%m/%Y")

然后,只需以秒为单位添加
Time
列,其余部分将由
POSIXlt
格式处理。

关于
US$TradeDates关于
US$TradeDates的内容如何
US$TradeDates[1] <- paste(US$Date[1],US$Time[1])

head(US)

  Symbol     Date     Time     Open     High      Low    Close Volume Tick.Count          TradeDates
1  USH94 01/03/94 08:21:00 114.4062 114.4375 114.3750 114.4062      0          5   01/03/94 08:21:00
2  USH94 01/03/94 08:22:00 114.3750 114.4062 114.3125 114.3750      0         11 01/03/94 0.34861111
3  USH94 01/03/94 08:23:00 114.3438 114.3750 114.3125 114.3438      0          7 01/03/94 0.34930556
4  USH94 01/03/94 08:24:00 114.3125 114.3125 114.2500 114.2812      0         14 01/03/94 0.35000000
5  USH94 01/03/94 08:25:00 114.2500 114.2812 114.2188 114.2188      0          6 01/03/94 0.35069444
6  USH94 01/03/94 08:26:00 114.1875 114.2500 114.1875 114.2500      0         13 01/03/94 0.35138889
as.POSIXlt(as.character(US$Date), format="%d/%m/%Y")