Dear Johan,

Tank you for this bit of information. It seems to me that the DataFrames 
package might become the defacto manner in which data is imported into 
Julia but I'd still like to have both options open.

Thank you all again,
Don 

On Thursday, July 3, 2014 7:54:49 PM UTC-4, Johan Sigfrids wrote:
>
> You can use dropna() to convert a DataArray to a Array. This will 
> obviously drop any missing values. 
>
> On Friday, July 4, 2014 2:08:55 AM UTC+3, Donald Lacombe wrote:
>>
>> Patrick (and others),
>>
>> Another issue that has reared it's ugly head is that when I read the data 
>> using the Data Frames package, I get the following:
>>
>> data = readtable("ct_coord_2.csv",header=false)
>>
>> 8x2 DataFrame:
>>
>>               x1      x2
>>
>> [1,]    -73.3712  41.225
>>
>> [2,]    -72.1065 41.4667
>>
>> [3,]    -73.2453 41.7925
>>
>> [4,]    -71.9876   41.83
>>
>> [5,]    -72.3365  41.855
>>
>> [6,]    -72.7328 41.8064
>>
>> [7,]    -72.5231 41.4354
>>
>> [8,]    -72.8999 41.3488
>>
>>
>> julia> xc = data[:,1]
>>
>> 8-element DataArray{Float64,1}:
>>
>>  -73.3712
>>
>>  -72.1065
>>
>>  -73.2453
>>
>>  -71.9876
>>
>>  -72.3365
>>
>>  -72.7328
>>
>>  -72.5231
>>
>>  -72.8999
>>
>>
>> julia> yc = data[:,2]
>>
>> 8-element DataArray{Float64,1}:
>>
>>  41.225 
>>
>>  41.4667
>>
>>  41.7925
>>
>>  41.83  
>>
>>  41.855 
>>
>>  41.8064
>>
>>  41.4354
>>
>>  41.3488
>>
>>
>> julia> xc=xc'
>>
>> 1x8 DataArray{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>
>> julia> yc=yc'
>>
>> 1x8 DataArray{Float64,2}:
>>
>>  41.225  41.4667  41.7925  41.83  41.855  41.8064  41.4354  41.3488
>>
>>
>> julia> temp = [xc;yc]
>>
>> 2x8 DataArray{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>   41.225    41.4667   41.7925   41.83        41.8064   41.4354   41.3488
>>
>>
>> julia> R = pairwise(Euclidean(),temp)
>>
>> MethodError(At_mul_B!,(
>>
>> 8x8 Array{Float64,2}:
>>
>>  2.7273e-316   2.7273e-316   2.67478e-315  …  2.7273e-316   2.7273e-316 
>>
>>  2.67736e-315  2.67736e-315  2.67736e-315     2.72726e-316  2.72726e-316
>>
>>  2.67727e-315  2.67727e-315  2.67727e-315     2.67727e-315  2.67727e-315
>>
>>  2.67727e-315  2.67727e-315  2.67727e-315     2.67727e-315  2.67727e-315
>>
>>  4.94066e-324  4.94066e-324  4.94066e-324     9.88131e-324  4.94066e-324
>>
>>  2.76235e-318  2.76235e-318  2.76235e-318  …  2.76235e-318  2.76235e-318
>>
>>  4.94066e-324  4.94066e-324  4.94066e-324     9.88131e-324  4.94066e-324
>>
>>  4.94066e-324  4.94066e-324  4.94066e-324     9.88131e-324  4.94066e-324,
>>
>>
>> 2x8 DataArray{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>   41.225    41.4667   41.7925   41.83        41.8064   41.4354   41.3488,
>>
>>
>> 2x8 DataArray{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>   41.225    41.4667   41.7925   41.83        41.8064   41.4354   41.3488))
>>
>>
>> I do not think that the Distance package likes the types that is input into 
>> the function, i.e. the vectors are DataArrays instead of Arrays. It works 
>> just fine when I used Tony's idea:
>>
>>
>>  julia> data = readcsv("ct_coord_2.csv",Float64)
>>
>> 8x2 Array{Float64,2}:
>>
>>  -73.3712  41.225 
>>
>>  -72.1065  41.4667
>>
>>  -73.2453  41.7925
>>
>>  -71.9876  41.83  
>>
>>  -72.3365  41.855 
>>
>>  -72.7328  41.8064
>>
>>  -72.5231  41.4354
>>
>>  -72.8999  41.3488
>>
>>
>> julia> xc = data[:,1]
>>
>> 8-element Array{Float64,1}:
>>
>>  -73.3712
>>
>>  -72.1065
>>
>>  -73.2453
>>
>>  -71.9876
>>
>>  -72.3365
>>
>>  -72.7328
>>
>>  -72.5231
>>
>>  -72.8999
>>
>>
>> julia> yc = data[:,2]
>>
>> 8-element Array{Float64,1}:
>>
>>  41.225 
>>
>>  41.4667
>>
>>  41.7925
>>
>>  41.83  
>>
>>  41.855 
>>
>>  41.8064
>>
>>  41.4354
>>
>>  41.3488
>>
>>
>> julia> xc=xc'
>>
>> 1x8 Array{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>
>> julia> yc=yc'
>>
>> 1x8 Array{Float64,2}:
>>
>>  41.225  41.4667  41.7925  41.83  41.855  41.8064  41.4354  41.3488
>>
>>
>> julia> temp = [xc;yc]
>>
>> 2x8 Array{Float64,2}:
>>
>>  -73.3712  -72.1065  -73.2453  -71.9876  …  -72.7328  -72.5231  -72.8999
>>
>>   41.225    41.4667   41.7925   41.83        41.8064   41.4354   41.3488
>>
>>
>> julia> R = pairwise(Euclidean(),temp)
>>
>> 8x8 Array{Float64,2}:
>>
>>  0.0       1.28762   0.581327  1.51014   …  0.863479  0.873799  0.487347
>>
>>  1.28762   0.0       1.18451   0.382214     0.712542  0.417808  0.802085
>>
>>  0.581327  1.18451   0.0       1.25833      0.512668  0.805673  0.562309
>>
>>  1.51014   0.382214  1.25833   0.0          0.745667  0.665227  1.03141 
>>
>>  1.21144   0.451294  0.910982  0.349837     0.399323  0.459258  0.757372
>>
>>  0.863479  0.712542  0.512668  0.745667  …  0.0       0.426208  0.487124
>>
>>  0.873799  0.417808  0.805673  0.665227     0.426208  0.0       0.386557
>>
>>  0.487347  0.802085  0.562309  1.03141      0.487124  0.386557  0.0     
>>
>>
>> There seems to be some issue with the Distance package not accepting Data 
>> Frames. Of course, the readcsv works fine but this might be an issue for 
>> others as well.
>>
>>
>> Thanks,
>>
>> Don
>>
>>
>>
>> On Thursday, July 3, 2014 6:49:18 PM UTC-4, Patrick O'Leary wrote:
>>>
>>> On Thursday, July 3, 2014 5:36:23 PM UTC-5, Donald Lacombe wrote:
>>>>
>>>> I'm no GIS expert (I'm an applied econometrician) and the code I've 
>>>> written seems to work. The Distance package also works with my "real" data 
>>>> which are the centroids of the counties in Connecticut and I tested it 
>>>> with 
>>>> Euclidean, Cityblock, and SqEuclidean.
>>>>
>>>
>>> Glad you got something working. Whether those distances are accurate 
>>> enough depends on how the points are arranged and what you plan to do with 
>>> it--I can see where it wouldn't make much difference in this case. I can't 
>>> let the statisticians and image processing folks have all the technical 
>>> conversation fun in this mailing list, though!
>>>
>>

Reply via email to