ne_character Function

public function ne_character(df, col, value) result(mask)

Not equal comparison for character columns

Arguments

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

Return Value type(boolean_mask)


Source Code

    function ne_character(df, col, value) result(mask)
        type(data_frame), intent(in) :: df
        class(*), intent(in) :: col
        character(len=*), intent(in) :: value
        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) = trim(val) /= trim(value)
            deallocate (val)
        end do

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