DataFort Joins Module
This module provides standalone join and merge functions for data frames. All functions take a data_frame as the first argument instead of being type-bound procedures.
df_inner_join(df1, df2, key_col1, key_col2)
- SQL-style inner joindf_left_join(df1, df2, key_col1, key_col2)
- SQL-style left joindf_right_join(df1, df2, key_col1, key_col2)
- SQL-style right joindf_outer_join(df1, df2, key_col1, key_col2)
- SQL-style outer join (full outer join)df_merge(df1, df2, on_column, how)
- Merge using column namesPerform an inner join between two data frames
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
integer, | intent(in) | :: | key_col1 | |||
integer, | intent(in) | :: | key_col2 |
Perform a left join between two data frames
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
integer, | intent(in) | :: | key_col1 | |||
integer, | intent(in) | :: | key_col2 |
Merge two dataframes on column names (similar to SQL join but using names)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
character(len=*), | intent(in) | :: | on_column | |||
character(len=*), | intent(in) | :: | how |
Perform an outer join between two data frames
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
integer, | intent(in) | :: | key_col1 | |||
integer, | intent(in) | :: | key_col2 |
Perform a right join between two data frames
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
integer, | intent(in) | :: | key_col1 | |||
integer, | intent(in) | :: | key_col2 |
Helper subroutine to build joined dataframe from match indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df1 | |||
type(data_frame), | intent(in) | :: | df2 | |||
integer, | intent(in), | dimension(:) | :: | indices1 | ||
integer, | intent(in), | dimension(:) | :: | indices2 | ||
integer, | intent(in) | :: | num_rows | |||
type(data_frame), | intent(out) | :: | result_df |