# Select columns from StructArray

**URL:** <https://discourse.julialang.org/t/select-columns-from-structarray/117214>\
**Category:** General Usage\
**Tags:** structarrays\
**Created:** [July 19, 2024, 6:17am UTC](https://discourse.julialang.org/t/select-columns-from-structarray/117214 "2024-07-19T06:17:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [July 19, 2024, 6:17am UTC](https://discourse.julialang.org/t/select-columns-from-structarray/117214/1 "2024-07-19T06:17:36Z")

</div>

How can I choose columns from a StructArray?

```julia
julia> StructArray(a=[1,2], b=[10,20], c=[100, 200])[(:a,:b)]
ERROR: ArgumentError: invalid index: (:a, :b) of type Tuple{Symbol, Symbol}

```

---

<div class="post-metadata">

**Author:** ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)\
**Post date:** [July 19, 2024, 6:43am UTC](https://discourse.julialang.org/t/select-columns-from-structarray/117214/2 "2024-07-19T06:43:39Z")

</div>

You can get a single column with `A.a`, `A.b`. For multiple columns I don’t know if there’s something better than `[getproperty(A, c) for c in (:a, :b)]` or `getproperty.(Ref(A), (:a, :b))`

---

<div class="post-metadata">

**Author:** ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)\
**Post date:** [July 19, 2024, 6:46am UTC](https://discourse.julialang.org/t/select-columns-from-structarray/117214/3 "2024-07-19T06:46:31Z")

</div>

Ah actually there’s `components`:

```julia
julia> A = StructArray(a=[1,2], b=[10,20], c=[100, 200])
2-element StructArray(::Vector{Int64}, ::Vector{Int64}, ::Vector{Int64}) with eltype @NamedTuple{a::Int64, b::Int64, c::Int64}:
 (a = 1, b = 10, c = 100)
 (a = 2, b = 20, c = 200)

julia> StructArrays.components(A)[(:a, :b)]
(a = [1, 2], b = [10, 20])

```

But it’s deprecated…
