Как исправить "ошибку в резюме (is.na (коды))" в R - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь импортировать данные из национальной базы данных Эстонии через r в powerbi, но иногда эти данные выдают мне ошибку, которую я не знаю, как ее исправить.

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

У меня есть небольшое количество кода

library(stringr)
library('rsdmx')
data = readSDMX('http://andmebaas.stat.ee/restsdmx/sdmx.ashx/GetData/LET171/1+2+3+4+5+6+7+8+9+10+11+12+13+14.1+2+3/all?startTime=2010&endTime=2016')
DF = as.data.frame(data)
dsd = readSDMX("http://andmebaas.stat.ee/restsdmx/sdmx.ashx/GetDataStructure/LET171")
cls=slot(dsd, "codelists")
codelists <- sapply(slot(cls, "codelists"), function(x) slot(x, "id"))
for(i in codelists){
  kood <- str_sub(i, start= 10)
  if(kood!="OBS_STATUS"){
    assign(kood, as.data.frame(slot(dsd, "codelists"), codelistId = i))
  }
}

Он отлично работает с некоторыми данными, например, используя эти ссылки

Данные http://andmebaas.stat.ee/restsdmx/sdmx.ashx/GetData/RV021/1+2+3.1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+31+32+33+34+20+21/all?startTime=1919&endTime=2019

dsd http://andmebaas.stat.ee/restsdmx/sdmx.ashx/GetDataStructure/RV021

Код должен импортировать данные в powerbi и создавать таблицы с данными и идентификаторами, но со ссылками, которые в настоящее время находятся вкод выдает следующую ошибку

Error in colSums(is.na(codes)) : 'x' must be an array of at least two dimensions In addition: Warning message: In is.na(codes) : is.na() applied to non-(list or vector) of type 'NULL'

1 Ответ

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

Похоже, codes - это вектор, а функции colSums() требуется матрица в качестве аргумента.Я не прошел весь ваш пример, но если вы хотите преобразовать вектор в матрицу, вы можете сделать это с помощью

codes <- as.matrix(codes, nrow=your_nrow, ncol=your_ncol)

, где вы можете указать только один из nrow или ncol.

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