대략 2250 만 건의 데이터 세트에 대해 롤링 가치가있는 값을 예측하고자하므로 빠른 계산을 위해 sparklyr을 사용하고 싶습니다. 여기에 내가 (샘플 데이터베이스를 사용) 한 일이다 sparklyr을 사용하는 대용량 데이터의 경우 rollapply
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'))
는 지금은 dplyr 및 PerformanceAnalytics 패키지를 사용하여 VaR의 추정 :
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))
이 잘 작동합니다. 지금이 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
을하지만 이것은 다음과 같은 오류 제공 :
Error: Unknown input type: pairlist
사람이 어디에 오류가 올바른 코드가 무엇을 말해 주실 수 있습니까? 또는 롤링 VaR을 더 빨리 예측할 수있는 다른 솔루션도 좋습니다.
'data $ date = row.names (data)'는'date'가 아닌'character'의 벡터를 제공한다는 것을 알고 있습니까? 'data $ date <- as.Date (row.names (data))'를하면 어떻게됩니까? – C8H10N4O2