help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Innerjoin in Octave


From: Andrew Janke
Subject: Re: Innerjoin in Octave
Date: Thu, 25 Apr 2019 00:59:47 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.6.1


On 4/24/19 10:43 PM, Nicholas Jankowski wrote:
> 
> 
> On Wed, Apr 24, 2019, 4:12 PM zutboy <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     Hello,
> 
>     I'm not sure if this is the right way to seek help on this topic.
> 
>     I want to innerjoin two tables in Octave.
>     In Matlab I know it's fairly easy to do this:
>     A = table([10;22;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
>     B = table([6;1;1;6;8],[2;3;4;5;6])
>     [C,ia,ib] = innerjoin(A,B,'LeftKeys',1,'RightKeys',2)
> 
>     How does one do this in Octave?
>     I am new to loops, so if you could help me it would be much appreciated.
> 
> 
> Just to confirm, innerjoin was added to MATLAB in 2013, and I believe
> its still in the missing functions list. I don't know if the table class
> has been implemented at all yet. Doing this in octave may be possible,
> but I'm not sure what the alternative approach would be since I'm not
> familiar with what inner join is trying to do..
> 
> 

The table class has not been implemented in core Octave.

I'm working on a package to provide it, though:
https://github.com/apjanke/octave-table.

octave-table is a work in progress and it's definitely not ready for
production use, but enough of the basic functionality is there that you
can use it to do an innerjoin:

>> A = table([10;22;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
A =
table: 5 rows x 3 variables
  VariableNames: Var1, Var2, Var3
>> B = table([6;1;1;6;8],[2;3;4;5;6])
B =
table: 5 rows x 2 variables
  VariableNames: Var1, Var2
>> [C,ia,ib] = innerjoin(A,B,'LeftKeys',1,'RightKeys',2)
C =
table: 2 rows x 4 variables
  VariableNames: Var1, Var2, Var3, Var1_B
ia =
   3   1
   4   2

ib =
   1
   2

>> prettyprint(C)
-------------------------------
| Var1 | Var2 | Var3 | Var1_B |
-------------------------------
| 2    | 9    | 8    | 6      |
| 3    | 6    | 8    | 1      |
-------------------------------
>>

You might find it useful. Any feedback is appreciated.

There's also the Octave Forge Dataframe package -
https://wiki.octave.org/Dataframe_package - but I don't know if it
supports joins.

Cheers,
Andrew



reply via email to

[Prev in Thread] Current Thread [Next in Thread]