使用R在大型数据集中运行

问题描述

我正在尝试在大型数据集中分隔“日期和时间”列,以便仅隔离时间部分。

该列的格式如下:

$ Start_Time <chr> "12/31/2015 05:35:00 PM","12/31/2015 05:37:00 PM","12/31/2015 05:38:00...

我运行以下代码行:

separate(Start_Time,into = c("Date","Time","Eh"))

我得到以下输出

> Test <- Divvy_Trips %>%
+   separate(Start_Time,"Eh"))
Error: memory exhausted (limit reached?)

我的会话信息也在下面:

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

关于我可以为此做些什么的任何想法,或者由于我的数据集大约有2100万个观测值,因此我对使用R感到不满意。

谢谢!

解决方法

您可以尝试以下data.table选项:

library(data.table)
library(splitstackshape)

setDT(Divvy_Trips)

#Using tstrsplit
Divvy_Trips[,c("Date","Time","Eh") := tstrsplit(type," ")]

#Using cSplit
result <- cSplit(Divvy_Trips,"Start_Time"," ")