填写Julia中的栏

时间:2018-06-25 20:12:11

标签: r julia

我试图用来自另一个矩阵的值填充Julia的一列。在R中,它看起来像这样:

for(id in 1:y){
    countries[id,1] <- x[id, countries1[id]]
}

但是,当我尝试将等号的左侧转换为Julia时:

countries[:1]

我看到一条错误消息:

"ERROR: MethodError: Cannot `convert` an object of type Int64 to an 
object of type Array{Int64,2}
This may have arisen from a call to the constructor Array{Int64,2} . 
(...), since type constructors fall back to convert methods."

我不认为我的Julia转换正确无误,因为我放弃了id。如何有效地将r代码转换为Julia?

1 个答案:

答案 0 :(得分:4)

尚不清楚OP打算如何将声明的R代码转换为Julia代码。但是,鉴于涉及countries[:1],我们可以对错误做出有根据的猜测:

countries[:1]应该是countries[:, 1]

  • countries[:, 1]返回矩阵countries中的第一个
  • countries[:1]解析为countries[1]并返回整数 countries[1,1]。这是因为前导冒号:<name>告诉Julia将<name>视为符号。在某些时候解析符号,返回1。

后一点解释了错误消息:

  

错误:MethodError:无法convert类型为Int64的对象到   Array {Int64,2}类型的对象

OP希望countries[:1]返回一个数组( Array {Int64,2} ),实际上它返回一个整数( Int64 )。