# DataFramesMeta questions

**URL:** <https://discourse.julialang.org/t/dataframesmeta-questions/69952>\
**Category:** General Usage\
**Tags:** dataframes\
**Created:** [October 17, 2021, 11:58pm UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952 "2021-10-17T23:58:38Z")\
**Posts on this page:** 16\
**Page:** 2

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [October 25, 2021, 11:00am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/21 "2021-10-25T11:00:43Z")

</div>

I use @aside all the time. Its a fantastic tool.  
Sorry, that code was a bad illustration of the point.

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [October 25, 2021, 11:01am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/22 "2021-10-25T11:01:39Z")

</div>

I’m just saying, imagine if things chained automatically without writing the @chain macro

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [October 25, 2021, 11:04am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/23 "2021-10-25T11:04:41Z")

</div>

One feature I would like to see is a `@chain` macro which operates in global scope. Something like

```julia
@chain df @global begin 
    ...
end

```

this would make it easier to debug. This would be a relatively simple PR.

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [October 25, 2021, 11:09am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/24 "2021-10-25T11:09:05Z")

</div>

So writing `X = _` within the chain, would be like writing `global X = _ `  
That would be really good.

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [November 2, 2021, 10:13pm UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/25 "2021-11-02T22:13:54Z")

</div>

would it be possible to allow more flexibility in @rtransfrom ?  
Allow statements like

```julia
               :x += 1

```

or

```julia
              :y, :z = :x , :x

```

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 2, 2021, 10:24pm UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/26 "2021-11-02T22:24:58Z")

</div>

Probably not at the moment. It’s hard to map that to a `src => fun => dest` expression in DataFrames that gets sent to `transform`.

---

<div class="post-metadata">

**Author:** ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)\
**Post date:** [November 3, 2021, 12:09am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/27 "2021-11-03T00:09:28Z")

</div>

`:x => x->x+1 => :x` and `:x => identity => :y, x:=>identity => :z` ?

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 3, 2021, 12:10am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/28 "2021-11-03T00:10:52Z")

</div>

Yeah. That’s feasible.

I just mean that it would take some work to special-case those exact syntaxes (and open the door to new ones). Please make a PR if interested!

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [November 9, 2021, 9:56am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/29 "2021-11-09T09:56:53Z")

</div>

```julia
@chain begin
    DataFrame( A=1, B=2 )
    @rtransform :X = (; :A , :B)  
end

```

Produces  
`:X = (##1262 = 1, ##1263 = 2)`

But I’d like the column names to become the tuple names  
`:X = (A=1, B=2)`

Is this possible?

---

<div class="post-metadata">

**Author:** ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)\
**Post date:** [November 9, 2021, 10:06am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/30 "2021-11-09T10:06:41Z")

</div>

Did you try `:x = (a=:a, b=:b)`?

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [November 9, 2021, 10:09am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/31 "2021-11-09T10:09:48Z")

</div>

That works but I have 20 columns. I don’t want to list them all twice

---

<div class="post-metadata">

**Author:** ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)\
**Post date:** [November 9, 2021, 10:18am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/32 "2021-11-09T10:18:39Z")

</div>

Perhaps write a function that generates the needed code and

`@rtransform :x = $(tupelifycols(df))`

---

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [November 9, 2021, 10:23am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/33 "2021-11-09T10:23:10Z")

</div>

This function already exists: it’s `Tables.rowtable.`

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [November 9, 2021, 11:17am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/34 "2021-11-09T11:17:56Z")

</div>

Many thanks:)

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 9, 2021, 12:24pm UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/35 "2021-11-09T12:24:56Z")

</div>

Yes, this is known, and comes from the way DataFramesMeta’s function creation works. Can you please file an issue so I can keep track of it?

> That works but I have 20 columns. I don’t want to list them all twice

Maybe the new `@astable` macro-flag can help here? Maybe not, though, if you want `:x` to be a vector of named tuples.

---

<div class="post-metadata">

**Author:** ![Lincoln\_Hannah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lincoln_hannah/32/19198_2.png) [@Lincoln\_Hannah](https://discourse.julialang.org/u/Lincoln_Hannah)\
**Post date:** [November 10, 2021, 1:44am UTC](https://discourse.julialang.org/t/dataframesmeta-questions/69952/36 "2021-11-10T01:44:13Z")

</div>

Created.

[https://github.com/JuliaData/DataFramesMeta.jl/issues/306](https://github.com/JuliaData/DataFramesMeta.jl/issues/306)

[Previous page](https://discourse.julialang.org/t/dataframesmeta-questions/69952.md?page=1)
