我已经环顾四周,似乎无法掌握这种情况。我在Eclipse中使用R.我试图导入的文件是700mb,大约15mil行和6列。由于我在加载时出现问题,因此我开始使用ff
包。
library(ff)
FDF = read.csv.ffdf(file='C:\\Users\\William\\Desktop\\R Data\\GBPUSD.1986.2014.txt', header = FALSE, colClasses=c('factor','factor','numeric','numeric','numeric','numeric'), sep=',')
names(FDF)= c('Date','Time','Open','High','Low','Close')
#names the columns in the ffdf file
dim(FDF)
# produces dimensions of the file
然后我想创建一个POSIXct序列,稍后将根据导入的文件加入该序列。我试过了;
tm1 = seq(as.POSIXct("1986/12/1 00:00"), as.POSIXct("2014/09/04 23:59"),"mins"))
tm1 = data.frame (DateTime=strftime(tm1,format='%Y.%m.%d %H:%M'))
然而R一直在崩溃。然后我测试了这是RStudio,并看到他们在向量上的约束。但它确实产生了正确的
dim(tm1)
names(tm1)
所以我回到Eclipse认为这与内存分配有关。我尝试了以下内容;
library(ff)
tm1 = as.ffdf(seq(as.POSIXct("1986/12/1 00:00"), as.POSIXct("2014/09/04 23:59"),"mins"))
tm1 = as.ffdf(DateTime=strftime(tm1,format='%Y.%m.%d %H:%M'))
names(tm1) = c('DateTime')
dim(tm1)
names(tm1)
这给出了错误
没有适用于'as.ffdf'的方法适用于类“c('POSIXct','POSIXt')的对象”
我似乎无法解决这个问题。然后我试了......
library(ff)
tm1 = as.ff(seq(as.POSIXct("1986/12/1 00:00"), as.POSIXct("2014/09/04 23:59"),"mins"))
tm1 = as.ff(DateTime=strftime(tm1,format='%Y.%m.%d %H:%M'))
生成输出日期,但格式不正确。除此之外,当...
dim(tm1)
names(tm1)
执行时它们都返回null。
问题
答案 0 :(得分:0)
我们最终会到达那里。
我认为问题是在创建完整向量期间可用的RAM。在这种情况下,我将矢量分解为3,将它们转换为ffdf格式以释放RAM,然后使用rbind
将它们绑定在一起。
我相信,一旦创建了矢量格式化的问题是由于访问RAM。我每次尝试这个R都崩溃了。
即使我的机器下面的工作正在减慢(4gb)。我订购了更多内存,希望这能平滑未来的运营。
以下是工作代码;
library(ff)
library(ffbase)
tm1 = seq(from = as.POSIXct('1986-12-01 00:00'), to = as.POSIXct('2000-12-01 23:59'), by = 'min')
tm1 = data.frame(DateTime=strftime(tm1, format='%Y.%m.%d %H:%M'))
# create data frame within memory contrainst
tm1 = as.ffdf(tm1)
# converts to ffdf format
memory.size()
tm2 = seq(from = as.POSIXct('2000-12-02 00:00'), to = as.POSIXct('2010-12-01 23:59'), by = 'min')
tm2 = data.frame(DateTime=strftime(tm2, format='%Y.%m.%d %H:%M'))
# create data frame within memory contrainst
tm2 = as.ffdf(tm2)
memory.size()
tm3 = seq(from = as.POSIXct('2010-12-2 00:00'), to = as.POSIXct('2014-09-04 23:59'), by = 'min')
tm3 = data.frame(DateTime=strftime(tm3, format='%Y.%m.%d %H:%M'))
memory.size()
tm3 = as.ffdf(tm3)
# converts to ffdf format
memory.size()
tm4 = rbind(tm1, tm2, tm3)
# binds ffdf objects into one
dim(tm4)
# checks the row numbers