Tôi muốn ước tính giá trị lăn có nguy cơ cho tập dữ liệu khoảng 22,5 triệu quan sát, do đó tôi muốn sử dụng sparklyr để tính toán nhanh. Đây là những gì tôi đã làm (sử dụng một cơ sở dữ liệu mẫu):rollapply cho dữ liệu lớn bằng cách sử dụng sparklyr
library(PerformanceAnalytics)
library(reshape2)
library(dplyr)
data(managers)
data <- zerofill(managers)
data<-as.data.frame(data)
class(data)
data$date=row.names(data)
lmanagers<-melt(data, id.vars=c('date'))
Bây giờ tôi ước tính VaR sử dụng dplyr và PerformanceAnalytics gói:
library(zoo) # for rollapply()
var <- lmanagers %>% group_by(variable) %>% arrange(variable,date) %>%
mutate(var=rollapply(value, 10,FUN=function(x) VaR(x, p=.95, method="modified",align = "right"), partial=T))
này hoạt động tốt. Bây giờ tôi làm điều này để tận dụng sparklyr:
library(sparklyr)
sc <- spark_connect(master = "local")
lmanagers_sp <- copy_to(sc,lmanagers)
src_tbls(sc)
var_sp <- lmanagers_sp %>% group_by(variable) %>% arrange(variable,date) %>%
mutate(var=rollapply(value, 10,FUN=function(x) VaR(x, p=.95, method="modified",align = "right"), partial=T)) %>%
collect
Nhưng điều này mang đến cho các lỗi sau:
Error: Unknown input type: pairlist
bất cứ ai có thể vui lòng cho tôi biết đâu là lỗi và mã chính xác là bao nhiêu? Hoặc bất kỳ giải pháp khác để ước tính VaR cán nhanh hơn cũng được đánh giá cao.
bạn nhận ra rằng 'dữ liệu $ date = row.names (dữ liệu)' cung cấp cho bạn một vectơ của 'ký tự', không phải là' Ngày'? Điều gì xảy ra nếu bạn làm 'data $ date <- as.Date (row.names (data))' – C8H10N4O2