contains_character Function

public function contains_character(df, col, substring) result(mask)

Contains substring comparison for character columns

Arguments

Type IntentOptional Attributes Name
type(data_frame), intent(in) :: df
class(*), intent(in) :: col
character(len=*), intent(in) :: substring

Return Value type(boolean_mask)


Source Code

    function contains_character(df, col, substring) result(mask)
        type(data_frame), intent(in) :: df
        class(*), intent(in) :: col
        character(len=*), intent(in) :: substring
        type(boolean_mask) :: mask

        logical, dimension(:), allocatable :: result_mask
        character(len=:), allocatable :: val
        integer :: col_index, i

        col_index = get_column_index(df, col)
        if (df % dtype(col_index) /= CHARACTER_NUM) error stop "column is not character type"

        allocate (result_mask(df % nrows()))

        do i = 1, df % nrows()
            val = df_get_val_character(df, i, col_index)
            result_mask(i) = index(val, substring) > 0
            deallocate (val)
        end do

        call mask % new(result_mask)
        deallocate (result_mask)
    end function contains_character