首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >列名作为DataFramesMeta宏中的变量

列名作为DataFramesMeta宏中的变量
EN

Stack Overflow用户
提问于 2019-04-17 03:39:25
回答 1查看 129关注 0票数 1

我正在使用来自DataFramesMeta.jl,的宏,并且我希望将列名存储在一个变量中。以下是我的输入数据:

代码语言:javascript
复制
using DataFrames
using DataFramesMeta
using Statistics

df = DataFrame(g = ["a", "a", "b", "b"], x = 1:4)
gdf = groupby(df, :g)

colname = :x

如果我在@select中使用colname,它在某种程度上是有效的,除了它返回一个数组而不是数据帧:

代码语言:javascript
复制
julia> @select(df, :x)
4×1 DataFrame
│ Row │ x     │
│     │ Int64 │
├─────┼───────┤
│ 1   │ 1     │
│ 2   │ 2     │
│ 3   │ 3     │
│ 4   │ 4     │

julia> @select(df, colname)
4-element Array{Int64,1}:
 1
 2
 3
 4

如果我试图在@where@group_by中使用colname,他们会抛出方法错误:

代码语言:javascript
复制
julia> @where(df, :x .> 2)
2×2 DataFrame
│ Row │ g      │ x     │
│     │ String │ Int64 │
├─────┼────────┼───────┤
│ 1   │ b      │ 3     │
│ 2   │ b      │ 4     │

julia> @where(df, colname .> 2)
ERROR: MethodError: no method matching isless(::Int64, ::Symbol)
代码语言:javascript
复制
julia> @based_on(gdf, xavg = mean(:x))
2×2 DataFrame
│ Row │ g      │ xavg    │
│     │ String │ Float64 │
├─────┼────────┼─────────┤
│ 1   │ a      │ 1.5     │
│ 2   │ b      │ 3.5     │

julia> @based_on(gdf, xavg = mean(colname))
ERROR: MethodError: no method matching iterate(::Symbol)

有没有办法在DataFramesMeta.jl宏中将列名作为变量传递?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55715518

复制
相关文章

相似问题

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