Ошибка умножения матриц и вывод ggplot - PullRequest
0 голосов
/ 10 апреля 2019

я пытаюсь сделать матричное умножение, выполняя анализ главных компонентов, и использую ggplot, чтобы показать результат

pca_model <- tbl(sc, "naflights") %>%
select(air_time, distance, dep_time) %>%
ml_pca()
print(pca_model)

# Explained variance:
#
#         PC1          PC2          PC3 
# 0.6975982637 0.3021978609 0.0002038754 
# 
# Rotation:
#                  PC1         PC2           PC3
# air_time -0.12514862 0.001940123 -0.9921361086
# distance -0.99200200 0.016312867  0.1251636066
# dep_time  0.01642742 0.999865054 -0.0001169274

D <- as.matrix(naflights[1:3])
E <- as.matrix(pca_model$components)

# Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x),  : 
#  'data' must be of a vector type, was 'NULL'

я пробовал:

D <- as.matrix(flights[4, 15, 16])
E <- as.matrix(pca_model$components)
Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x),  : 
  'data' must be of a vector type, was 'NULL'
loadings_pca <- tidy(pca_model)
loadings_pca
# A tibble: 3 x 4
  features     PC1     PC2       PC3
  <chr>      <dbl>   <dbl>     <dbl>
1 air_time -0.125  0.00194 -0.992   
2 distance -0.992  0.0163   0.125   
3 dep_time  0.0164 1.000   -0.000117
E <- as.matrix(loadings_pca[2:4])
P <- D %*% E
Error in D %*% E : non-conformable arguments
mode(D)
[1] "numeric"
 mode(E)
[1] "numeric"

Я пробовал этот подход, но все ещеполучение ошибки: несоответствующие аргументы.Кто-нибудь может помочь мне с этой проблемой?

...