Ошибка при запуске функции PerformanceAnalytics в R - PullRequest
1 голос
/ 26 сентября 2019

Я получаю сообщение об ошибке в аргументе 1: T: длина 0 при запуске пакета Performance Analytics в R. Я пропускаю пакет?Ниже мой код с ошибкой.

 #clean z, all features, alpha = .01, run below
 setwd("D:/LocalData/casaler/Documents/R/RESULTS/PLOTS_PCA/CLN_01")
 PGFZ_ALL <- read.csv("D:/LocalData/casaler/Documents/R/PG_DEUX_Z.csv", header=TRUE)
options(max.print = 100000) #Sets ability to view all dealer records

 pgfzc_all <- PGFZ_ALL
 #head(pgfzc_all,10)

 library("PerformanceAnalytics")
 library("RGraphics")
Loading required package: grid

 pgfzc_elev <- pgfzc_all$ELEV
 #head(pgfzc_elev,5)
 #View(pgfzc_elev)
 set.seed(123) #for replication purposes; always use same seed value
 cln_elev <- clean.boudt(pgfzc_elev, alpha = 0.01) #set alpha .001 to give the most extreme outliers

Ошибка в 1: T: аргумент длины 0

1 Ответ

0 голосов
/ 26 сентября 2019

Трудно ответить на ваш вопрос, не зная, как выглядят ваши данные.Но я могу сказать вам, что вызывает эту ошибку.Просматривая исходный код функции clean.boudt, я обнаружил следующую причину вашей ошибки:

T = dim(R)[1]
...
for (t in c(1:T)) {
    d2t = as.matrix(R[t, ] - mu) %*% invSigma %*% t(as.matrix(R[t, 
      ] - mu))
    vd2t = c(vd2t, d2t)
  }
...

dim (R) [1] извлекает количество строк в данных, переданных в аргумент Rв функции.Похоже, что в ваших данных нет строк, поэтому проверьте тип данных pgfzc_elev

Причина ошибки, вероятно, связана с использованием $ для подмножества pgfzc_all.

pgfzc_elev <- pgfzc_all$ELEV 

Я считаю, что это целое число класса, поэтому dim (R) [1] не работает в функции.

Скорее поднабор вашего объекта следующим образом:

pgfzc_elev <- pgfzc_all[, ELEV, drop = F]

Попробуйте и посмотрите, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...