1
我組合了一些數據以使用match()函數從一個非常大的數據框中提取特定的交易日期/時間,並完全陷入爲什麼我的代碼不管用。請注意,日期和時間列是分開的,這也對使用as.POSIXct函數提出了挑戰。請看看:在R中使用chron包合併列的日期列
這是數據是怎麼來對我說:
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
我然後使用日期()和時間()函數將列從因素的日期和時間值轉換。在這種情況下,我還將秒保存爲一個字符串作爲變量a,並且由於時間變化我添加了一個小時。
US$Time <- times(paste(US$Time,a,sep = ':'))+1/24
US$Date <- dates(as.character(US$Date))
下面是美國貌似現在:
head(US)
Symbol Date Time Open High Low Close Volume Tick.Count
1 USH94 01/03/94 08:21:00 114.4062 114.4375 114.3750 114.4062 0 5
2 USH94 01/03/94 08:22:00 114.3750 114.4062 114.3125 114.3750 0 11
3 USH94 01/03/94 08:23:00 114.3438 114.3750 114.3125 114.3438 0 7
4 USH94 01/03/94 08:24:00 114.3125 114.3125 114.2500 114.2812 0 14
5 USH94 01/03/94 08:25:00 114.2500 114.2812 114.2188 114.2188 0 6
6 USH94 01/03/94 08:26:00 114.1875 114.2500 114.1875 114.2500 0 13
相同。
然後我嘗試的日期和時間與粘貼()函數
US$TradeDates <- paste(US$Date,US$Time)
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 0.34791667
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
見該TradeDates列有時間小數形式一下子結合....但什麼是真正stumpling我是如果我通過元素做同樣的功能元素,我得到了想要的結果:
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
通知的第一行中的最後一列是正是我想要的,但所有其他行仍在小數形式。如果這是一個可管理的數據集,我只會使用一個循環,但這實際上是數十億行,而R無法處理該循環。
有什麼想法?
「US $ TradeDates < - chron(日期= US $日期,時間= US $時間) – MattBagg