Почему моя матрица заполняется NA, а не выводом l oop? - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу заполнить вкладку матрицы выводом вида (переменная ma), однако вместо этого она заполняет матрицу NA


MA<-data.matrix(my_data)
MA2=MA[-247,-8]
tab<-matrix(ncol=2,nrow=253)
ma4<-matrix(ncol=1,nrow=253)
tab[,1]<-MA2[,1]
for (n in 1:248) {
  y<-MA2[c(n,n+1,n+2,n+3,n+4,n+5),5]
  z<-sum(y)
  mav<-z/5
  tab[[n,2]]<-mav
  n<-n+1
}

ссылка на данные здесь https://uk.finance.yahoo.com/quote/LLOY.L/history?p=LLOY.L

1 Ответ

0 голосов
/ 06 февраля 2020

Очевидно, я не могу объяснить это в комментариях, поэтому здесь.

Я загрузил данные, использовал setwd(), чтобы установить рабочий каталог в каталог с файлом. Затем

my_data <- read.csv("LLOY.L.csv")

Проверка работоспособности:

> str(my_data)
'data.frame':   254 obs. of  7 variables:
 $ Date     : Factor w/ 254 levels "2019-02-06","2019-02-07",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ Open     : Factor w/ 220 levels "48.349998","48.580002",..: 90 107 69 73 84 98 99 70 108 110 ...
 $ High     : Factor w/ 229 levels "49.000000","49.230000",..: 96 92 68 73 82 94 85 111 108 117 ...
 $ Low      : Factor w/ 235 levels "48.155998","48.230999",..: 110 89 77 82 107 112 97 90 125 122 ...
 $ Close    : Factor w/ 221 levels "48.580002","48.680000",..: 104 68 61 86 97 92 74 108 105 106 ...
 $ Adj.Close: Factor w/ 235 levels "48.580002","48.680000",..: 58 47 44 52 55 53 50 61 59 60 ...
 $ Volume   : Factor w/ 254 levels "101608167","102059589",..: 12 62 43 26 57 13 253 72 240 23 ...

Да, данные читаются. Тем не менее, цифры читаются как факторы. При более внимательном рассмотрении данных появляется «нулевое» значение, которое, вероятно, равно NA, поэтому мы читаем данные как

my_data <- read.csv ("LLOY.L.csv", na. strings = "null") </p>

Теперь цифры c значения являются цифрами c. Теперь ваш код из вопроса.

MA<-data.matrix(my_data)
MA2=MA[-247,-8]
tab<-matrix(ncol=2,nrow=253)
ma4<-matrix(ncol=1,nrow=253)
tab[,1]<-MA2[,1]
for (n in 1:248) {
  y<-MA2[c(n,n+1,n+2,n+3,n+4,n+5),5]
  z<-sum(y)
  mav<-z/5
  tab[[n,2]]<-mav
  n<-n+1
}

Работает без предупреждения или ошибки. Теперь давайте посмотрим, что из-за tab:

summary(tab)

приводит к

> summary(tab)
       V1            V2       
 Min.   :  1   Min.   :58.82  
 1st Qu.: 64   1st Qu.:68.43  
 Median :127   Median :70.11  
 Mean   :127   Mean   :70.09  
 3rd Qu.:190   3rd Qu.:74.65  
 Max.   :254   Max.   :78.77  
               NA's   :11  

Как вы можете видеть, во втором столбце только 11 NA и достаточно чисел для расчета резюме.

> head(tab)
     [,1]   [,2]
[1,]    1 69.176
[2,]    2 69.004
[3,]    3 69.252
[4,]    4 69.540
[5,]    5 69.670
[6,]    6 70.304
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...