Для выбора переменных с заданной подстрокой используйте:
select(df, r"_some_string_")
на самом деле он намного мощнее подстроки - это может быть любая Regex
.
Для выбора переменных для данного типа элемента это сложнее. Проблема в том, что в Julia у вас гораздо больше гибкости, чем в R здесь. Например, у вас может быть eltype Any
, но вектор по-прежнему содержит только числа.
Поэтому вы можете написать:
select(df, findall(col -> eltype(col) <: Float64, eachcol(df)))
, конечно, здесь это ограничение, вы можете изменить Float64
на что-то вроде Real
, Number
или Union{Missing, Int}
в зависимости от того, что именно вы хотите выбрать. или напишите:
select(df, findall(col -> all(v -> v isa Float64, col), eachcol(df)))
на этот раз вы проверяете не тип элемента контейнера, а фактический тип сохраненных значений.
Вот быстрый пример разницы:
julia> df = DataFrame(a=[1.0], b=Any[1.0], c=[1])
1×3 DataFrame
│ Row │ a │ b │ c │
│ │ Float64 │ Any │ Int64 │
├─────┼─────────┼─────┼───────┤
│ 1 │ 1.0 │ 1.0 │ 1 │
julia> select(df, findall(col -> eltype(col) <: Float64, eachcol(df)))
1×1 DataFrame
│ Row │ a │
│ │ Float64 │
├─────┼─────────┤
│ 1 │ 1.0 │
julia> select(df, findall(col -> all(v -> v isa Float64, col), eachcol(df)))
1×2 DataFrame
│ Row │ a │ b │
│ │ Float64 │ Any │
├─────┼─────────┼─────┤
│ 1 │ 1.0 │ 1.0 │