# How to split a vector (or a dataframe) in two parts?

**URL:** https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809
**Category:** General Usage
**Created:** [August 30, 2024, 1:12pm UTC](https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809 "2024-08-30T13:12:17Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Ju\_ska](https://avatars.discourse-cdn.com/v4/letter/j/ecd19e/32.png) [@Ju\_ska](https://discourse.julialang.org/u/Ju_ska)
#### Post date: [August 30, 2024, 1:12pm UTC](https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809/1 "2024-08-30T13:12:17Z")

</div>

Hi,

I would like to cut this vector in half:

```julia
julia> y
5-element Vector{Int64}:
 325
 328
 329
 330
 331

```

to obtain, let’s say a and b:

```julia
julia> a
2-element Vector{Int64}:
 325
 328

julia> b
3-element Vector{Int64}:
 329
 330
 331

```

I digged around but surprisingly didn’t find a simple way to do that.

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [August 30, 2024, 1:34pm UTC](https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809/2 "2024-08-30T13:34:16Z")

</div>

If you don’t need the original Vector:

```julia
julia> y = [325, 328, 329, 330, 331]
5-element Vector{Int64}:
 325
 328
 329
 330
 331

julia> a = splice!(y, 1:div(length(y),2))
2-element Vector{Int64}:
 325
 328

julia> y
3-element Vector{Int64}:
 329
 330
 331

```

---

<div class="post-metadata">

### Author: ![fgerick](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fgerick/32/13228_2.png) [@fgerick](https://discourse.julialang.org/u/fgerick)
#### Post date: [August 30, 2024, 1:38pm UTC](https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809/3 "2024-08-30T13:38:56Z")

</div>

```julia
julia> y=collect(1:10)
10-element Vector{Int64}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10

julia> a,b = @views y[1:end÷2],y[end÷2+1:end]
([1, 2, 3, 4, 5], [6, 7, 8, 9, 10])

```

you can remove `@views` to do copies. Or maybe this is not simple enough?

---

<div class="post-metadata">

### Author: ![Ju\_ska](https://avatars.discourse-cdn.com/v4/letter/j/ecd19e/32.png) [@Ju\_ska](https://discourse.julialang.org/u/Ju_ska)
#### Post date: [August 30, 2024, 2:53pm UTC](https://discourse.julialang.org/t/how-to-split-a-vector-or-a-dataframe-in-two-parts/118809/4 "2024-08-30T14:53:49Z")

</div>

Thanks a lot !  
I went into splice but I guess I used it wrongly.  
Second method is nice too !
