help-octave
[Top][All Lists]

## 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
>
>     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

```