Я могу выбрать данные, равные значению с
data = rand(1:3, 10)
value = 2
data .== value
или равно списку значений с
values = [1, 2]
in.(data, (values,))
Последний тип является общим и также работает для скаляра: in.(data, (value, ))
.
Однако, это работает для Int
, но универсальный не работает для String
значений:
data = rand(["A", "B", "C"], 10)
value = "B"
data .== value
values = ["A","B"]
in.(data, (values, ))
in.(data, (value, ))
ERROR: use occursin(x, y) for string containment
Есть ли общий способ для String
с?
Для общего ввода val
я сейчас пишу следующее, но я считаю, что должно быть лучшее решение.
isa(val, AbstractArray) ? in.(data, (val,)) : data .== val
Справочная информация: я создаю функцию для выбора строк в кадре данных (и что-то с ними делать), но я хочу разрешить как список значений, так и одно значение.