首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >朱莉娅中的dplyr类%>%语法

朱莉娅中的dplyr类%>%语法
EN

Stack Overflow用户
提问于 2015-02-02 22:07:36
回答 1查看 2.4K关注 0票数 15

在R中(多亏了magrittr/dplyr),您现在可以调用没有括号的函数了,但是您可以用管道来代替它们。

这意味着,与其对以下内容进行编码,不如:

代码语言:javascript
复制
> as.character((sqrt(12)^2)
> as.Date("2014-01-01")

你也可以这样做:

代码语言:javascript
复制
> 12 %>% sqrt %>% .^2 %>% as.character
> "2014-01-01" %>% as.Date 

R广泛地使用它来编辑数据格式。除了dataframes之外,我觉得这种语法对于创建功能脚本来说是非常可读的和强大的。

朱莉娅语言支持类似的语言吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 22:39:07

是的,有两种感觉。

首先是|>

代码语言:javascript
复制
12 |> sqrt |> x->x^2 |> string  # 11.999999999999998
using Dates  # needed in 0.3, baked in to 0.4
"2014-01-1" |> d->Date(d,"yyyy-mm-dd") |> year |> iseven  # true

我不会说它是非常惯用的朱莉娅(或者R,除了使用dplyr对数据进行操作)。There is a discussion about enhancing this type of thing and making the syntax better.,你现在可以用Lazy.jl做很多整洁的事情!

特别是对于DataFrames,它是一个WIP,但是有一个DataFramesMeta.jlLazy.jl相结合,它允许您做诸如dplyrLINQ这样的事情,比如(摘自他们的自述文件):

代码语言:javascript
复制
x_thread = @> begin
    df
    @transform(y = 10 * :x)
    @where(:a .> 2)
    @by(:b, meanX = mean(:x), meanY = mean(:y))
    @orderby(:meanX)
    @select(:meanX, :meanY, var = :b)
end
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28287705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档