0
我有一個包含500萬行和更多行的數據集,我想從兩列創建時間戳,一列使用日期,另一列使用時間值。從日期和時間列中快速創建data.table中的時間戳列
當我使用fread()函數將csv讀入R時,所有列都是字符格式,因此我使用data.table將它們轉換爲相關格式,這對於那種事情來說非常快:
nf[, (dcols):= lapply(.SD,ymd),.SDcols=dcols] #using the ymd() function from lubridate to change date columns
我的下一個步驟是創建一個時間戳,我在下面的方式做:
nf[,start_timestamp := as.POSIXct(paste(start_date,start_time))]
如果我解決此函數調用運行Sys.Time(),我得到的3.843分鐘一個時間差。這是一段等待,所以我想知道是否有人可以建議一個基於data.table的解決方案,這將允許我更快地將這兩列組合成一個時間戳?
你應該做一個重複的例子,更快速地創建時間戳:一些可用的數據,N'的'功能和'nc'(行和列)以及適當的庫調用。 Data.table包含一些日期時間功能,但它涉及將日期和時間保留在單獨的列中。參見'IDateTime'。 – Frank
請參閱[本](http://stackoverflow.com/a/12898544/3001626)。我的猜測是'as.POSIXct'是你的瓶頸。另外,我不確定你在用什麼'ymd'。 –
@DavidArenburg我認爲'as.POSIXct'一定是瓶頸。我使用'ymd'將日期格式從字符更改爲日期 - 我發現它比'as.Date'快。 @Frank - 我將創建一些示例數據並編輯原始帖子。 –