Использование DataFramesMeta.jl
модуля, операции могут быть связаны с Джулией, используя следующий подходЯвного указания аргумента, когда цепочки операций в Джулии
using DataFrames, DataFramesMeta
df = DataFrame(a = collect(1:5), b = ["a","b","c","d","e"])
@> begin
df
@where(:a .> 2)
@select(:a, :b, c = :a*2)
end
# or:
print(
@linq df |>
@where(:a .> 2) |>
@select(:a,:b, c = :a*2)
)
3x3 DataFrames.DataFrame
| Row | a | b | c |
|-----|---|-----|----|
| 1 | 3 | "c" | 6 |
| 2 | 4 | "d" | 8 |
| 3 | 5 | "e" | 10 |
Идея заключается в том, что df
является первым аргументом макроса @where
и все @where
заявления фидов как первый аргумент в макросе @select
.
Однако нам может потребоваться, чтобы верхняя строка стала вторым аргументом, или мы можем использовать ее в нескольких местах. Для пользователей R (в операциях R могут быть прикованными с помощью %>%
), dplyr
пакет позволяет это с точки (.
) нотации, так что следующий будет работать:
library(dplyr)
df = data.frame(a = 1:5, b = c("a","b","c","d","e"))
df %>% filter(a > 2) %>% mutate(c = nrow(.):1) %>% select(b,c)
b c
1 c 3
2 d 2
3 e 1
Я искал способ имитировать точечную нотацию R в , но, к сожалению, точечное обозначение не работает в Julia, и я не мог найти ничего об этом в документации пакета.
Если кто-нибудь знает, как это может быть достигнуто, сообщите нам об этом.
Отлично, спасибо! Это именно то, что я искал. – IVR