-1

我正在尝试通过 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'

4

1 回答 1

0

看起来像是codes一个向量,并且该colSums()函数需要一个矩阵作为参数。我没有通过您的所有示例,但是如果您想将向量转换为矩阵,您可以使用

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

你只能给出其中一个nrowor ncol

于 2019-09-19T14:54:21.423 回答