Perfect John, thank you!

Bradley

On Tuesday, August 26, 2014 4:56:41 PM UTC-5, John Myles White wrote:
>
> For the moment, use array().
>
> I need to finish a pull request that does these conversions properly using 
> the convert() function.
>
>  -- John
>
> On Aug 26, 2014, at 2:55 PM, Bradley Setzler <[email protected] 
> <javascript:>> wrote:
>
> Following up on the changes in DataFrames Johan mentioned:
>
> The biggest difference I have found in DataFrames for Julia 0.3 is the 
> absence of the matrix() function. How can I quickly convert a DataFrame or 
> DataArray into an Array without matrix()? Here's an example of the issue:
>
>
> *Setup:*
> julia> X
> 3x3 DataFrame 
> |-------|------|-----|-----| 
> | Row # | x1 | x2 | x3 | 
> | 1 | -1.0 | 0.0 | 1.0 | 
> | 2 | 2.0 | 3.0 | 4.0 | 
> | 3 | 5.0 | 6.0 | 7.0 |
>
> julia> y 
> 3-element DataArray{Float64,1}: 
> 1.0 
> 0.0 
> 1.0
>
> *Issue:*
> julia> linreg(X,y) 
> ERROR: `linreg` has no method matching linreg(::DataFrame, 
> ::DataArray{Float64,1})
>
>
> *Old Solution:*
> julia> linreg(matrix(X),vec(matrix(y')))
> 4-element Array{Float64,1}:
> 0.222222 
> -0.222222 
> 1.38778e-16
> 0.222222 
>
>
> But matrix doesn't exist anymore. So I'm looking for commands that do the 
> following:
>
> *(1) Convert DataArray{Float64,1} into Array{Float64,1}.(2) Convert 
> DataFrame into Array{Float64,2}.*
>
> How do you do this in Julia 0.3?
>
> Thanks,
> Bradley
>
>
>
>
>
> On Monday, August 18, 2014 11:39:45 AM UTC-5, Johan Sigfrids wrote:
>>
>> There are probably going to be quite a few changes in the DataFrames 
>> package when you go from Julia 0.2 to 0.3.
>>
>> On Monday, August 18, 2014 7:28:48 PM UTC+3, Bradley Setzler wrote:
>>>
>>> Thanks, Johan. I have upgraded to 0.3 release candidate and see what you 
>>> mean about scalar multiplication not working for DataFrame any more. I see 
>>> also that DataArray successfully converts Integer to Float in the way John 
>>> was describing earlier, which solves the original problem.
>>>
>>> Problem solved, thanks guys,
>>> Bradley
>>>
>>>
>>>
>>> On Monday, August 18, 2014 10:32:25 AM UTC-5, Johan Sigfrids wrote:
>>>>
>>>> Multiplying a DataFrame by a scalar has been deprecated and will not 
>>>> work once you update to Julia 0.3 and the associated DataFrames version.
>>>>
>>>> On Monday, August 18, 2014 6:10:44 PM UTC+3, Bradley Setzler wrote:
>>>>>
>>>>> Update: I found a 1-line command to convert everything in a DataFrame 
>>>>> into a Float that seems to work generally:
>>>>>
>>>>> data = data*1.0
>>>>>
>>>>> So, for example,
>>>>> julia> A=DataFrame([1 2 ; 3 4])
>>>>> 2x2 DataFrame:
>>>>> x1 x2
>>>>> [1,] 1 2
>>>>> [2,] 3 4
>>>>> julia> A=A*1.0
>>>>> 2x2 DataFrame:
>>>>> x1 x2
>>>>> [1,] 1.0 2.0
>>>>> [2,] 3.0 4.0
>>>>>
>>>>> Best,
>>>>> Bradley
>>>>>
>>>>>
>>>>>
>>>>> On Monday, August 18, 2014 10:02:02 AM UTC-5, Bradley Setzler wrote:
>>>>>>
>>>>>> Hi John,
>>>>>>
>>>>>> Thanks for your reply, I'm getting the following:
>>>>>>
>>>>>> julia> A=DataArray([1 2; 3 4])
>>>>>> 2x2 DataArray{Int64,2}:
>>>>>> 1 2
>>>>>> 3 4
>>>>>> julia> A*.5
>>>>>> 2x2 DataArray{Float64,2}:
>>>>>> 0.5 1.0
>>>>>> 1.5 2.0
>>>>>>
>>>>>> julia> A/2.
>>>>>> 2x2 DataArray{Float64,2}:
>>>>>> 0.5 1.0
>>>>>> 1.5 2.0
>>>>>> julia> A/2
>>>>>> InexactError()
>>>>>>
>>>>>>
>>>>>> So it converts to Float if divided by Float, but does not convert if 
>>>>>> divided by Integer.
>>>>>>
>>>>>> Best,
>>>>>> Bradley
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Monday, August 18, 2014 9:31:43 AM UTC-5, John Myles White wrote:
>>>>>>>
>>>>>>> Hi Bradley, 
>>>>>>>
>>>>>>> Would you consider using DataArrays for this? DataFrames no longer 
>>>>>>> support these operations, so any upgrade in your setup would turn all 
>>>>>>> of 
>>>>>>> this code into errors. 
>>>>>>>
>>>>>>> All of these operations work on DataArrays already. 
>>>>>>>
>>>>>>>  — John 
>>>>>>>
>>>>>>> On Aug 18, 2014, at 7:28 AM, Bradley Setzler <[email protected]> 
>>>>>>> wrote: 
>>>>>>>
>>>>>>> > 
>>>>>>> > 
>>>>>>> > Good morning, 
>>>>>>> > 
>>>>>>> > I am looking for a simple way to convert an Integer DataFrame to a 
>>>>>>> Float DataFrame. Here is an example of the problem: 
>>>>>>> > 
>>>>>>> > julia> using DataFrames 
>>>>>>> > julia> A=DataFrame([1 2; 3 4]) 
>>>>>>> > 2x2 DataFrame: 
>>>>>>> > x1 x2 
>>>>>>> > [1,] 1 2 
>>>>>>> > [2,] 3 4 
>>>>>>> > 
>>>>>>> > With multiplication, there is no problem automatically converting 
>>>>>>> to Float: 
>>>>>>> > 
>>>>>>> > julia> A*.5 
>>>>>>> > 2x2 DataFrame: 
>>>>>>> > x1 x2 
>>>>>>> > [1,] 0.5 1.0 
>>>>>>> > [2,] 1.5 2.0 
>>>>>>> > 
>>>>>>> > But with division, for example, the conversion fails: 
>>>>>>> > 
>>>>>>> > julia> A/2 
>>>>>>> > InexactError() 
>>>>>>> > 
>>>>>>> > Ideally, there would be a one-line command so that we don't have 
>>>>>>> to worry about this issue, say DataFloat() of the form: 
>>>>>>> > 
>>>>>>> > julia> A=DataFloat(A) 
>>>>>>> > 2x2 DataFrame: 
>>>>>>> > x1 x2 
>>>>>>> > [1,] 1.0 2.0 
>>>>>>> > [2,] 3.0 4.0 
>>>>>>> > 
>>>>>>> > Does something like this exist? 
>>>>>>> > 
>>>>>>> > Thanks, 
>>>>>>> > Bradley 
>>>>>>> > 
>>>>>>>
>>>>>>>
>

Reply via email to