Check if character values are in a given list
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(data_frame), | intent(in) | :: | df | |||
integer, | intent(in) | :: | col_index | |||
character(len=*), | intent(in), | dimension(:) | :: | values |
function df_isin_character(df, col_index, values) result(mask) type(data_frame), intent(in) :: df integer, intent(in) :: col_index character(len=*), dimension(:), intent(in) :: values logical, dimension(:), allocatable :: mask character(len=:), allocatable :: val integer :: i, j if (col_index < 1 .or. col_index > df % ncols()) error stop "column index out of range" if (df % dtype(col_index) /= CHARACTER_NUM) error stop "column is not character type" allocate (mask(df % nrows())) mask = .false. do i = 1, df % nrows() val = df_get_val_character(df, i, col_index) do j = 1, size(values) if (trim(val) == trim(values(j))) then mask(i) = .true. exit end if end do deallocate (val) end do end function df_isin_character