我试图用来自另一个矩阵的值填充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?
答案 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 )。