<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TabularData",
  "identifier" : "/documentation/TabularData/ColumnSlice",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "TabularData"
    ],
    "preciseIdentifier" : "s:11TabularData11ColumnSliceV"
  },
  "title" : "ColumnSlice"
}
-->

# ColumnSlice

A collection that represents a selection of contiguous elements from a typed column.

```
struct ColumnSlice<WrappedElement>
```

## Overview

A column slice contains only certain elements from its parent column.
Create a slice by using a subscript with a range.

```swift
let slice = column[100 ..< 200]
```

## Topics

### Creating a Column Slice

[`init(Column<WrappedElement>)`](/documentation/TabularData/ColumnSlice/init(_:))

Creates a slice with the contents of a column.

### Creating a Slice of Unique Elements

[`func distinct() -> DiscontiguousColumnSlice<WrappedElement>`](/documentation/TabularData/ColumnSlice/distinct())

Generates a discontiguous slice that contains unique elements.

### Creating a Type-Erased Slice

[`func eraseToAnyColumn() -> AnyColumnSlice`](/documentation/TabularData/ColumnSlice/eraseToAnyColumn())

Returns a type-erased column slice.

### Creating a Column of the Same Type

[`var prototype: any AnyColumnPrototype`](/documentation/TabularData/ColumnSlice/prototype)

A prototype that creates type-erased columns with the same underlying type as the column slice.

### Creating Transformed Columns

[`func map<T>((ColumnSlice<WrappedElement>.Element) throws -> T?) rethrows -> Column<T>`](/documentation/TabularData/ColumnSlice/map(_:))

Creates a new column by applying a transformation to every element.

### Inspecting a Column Slice

[`var name: String`](/documentation/TabularData/ColumnSlice/name)

The name of the slice’s parent column.

[`var count: Int`](/documentation/TabularData/ColumnSlice/count)

The number of elements in the column slice.

[`var wrappedElementType: any Any.Type`](/documentation/TabularData/ColumnSlice/wrappedElementType)

The underlying type of the column’s elements.

[`func argmin() -> Int?`](/documentation/TabularData/ColumnSlice/argmin())

Returns the index of the element with the lowest value, ignoring missing elements.

[`func argmax() -> Int?`](/documentation/TabularData/ColumnSlice/argmax())

Returns the index of the element with the highest value, ignoring missing elements.

[`func isNil(at: Int) -> Bool`](/documentation/TabularData/ColumnSlice/isNil(at:))

Returns a Boolean that indicates whether the element at an index is missing.

### Accessing Elements

[`subscript(Int) -> ColumnSlice<WrappedElement>.Element`](/documentation/TabularData/ColumnSlice/subscript(_:)-38hn8)

Accesses an element at an index.

[`subscript(Range<Int>) -> ColumnSlice<WrappedElement>`](/documentation/TabularData/ColumnSlice/subscript(_:)-7lrhk)

Accesses a contiguous range of elements.

### Summarizing a Column Slice

[`func summary() -> CategoricalSummary<WrappedElement>`](/documentation/TabularData/ColumnSlice/summary())

Generates a categorical summary of the column slice’s elements.

[`func numericSummary() -> NumericSummary<Double>`](/documentation/TabularData/ColumnSlice/numericSummary()-68ohj)

Generates a numeric summary of the integer column slice’s elements.

[`func numericSummary() -> NumericSummary<WrappedElement>`](/documentation/TabularData/ColumnSlice/numericSummary()-5swa5)

Generates a numeric summary of the floating-point column slice’s elements.

### Getting Statistical Values

[`func sum() -> WrappedElement`](/documentation/TabularData/ColumnSlice/sum())

Returns the sum of the column slice’s elements, ignoring missing elements.

[`func min() -> ColumnSlice<WrappedElement>.Element`](/documentation/TabularData/ColumnSlice/min())

Returns the element with the lowest value, ignoring missing elements.

[`func max() -> ColumnSlice<WrappedElement>.Element`](/documentation/TabularData/ColumnSlice/max())

Returns the element with the highest value, ignoring missing elements.

[`func mean() -> Double?`](/documentation/TabularData/ColumnSlice/mean()-3inzf)

Returns the mean average of the integer slice’s elements, ignoring missing elements.

[`func mean() -> ColumnSlice<WrappedElement>.Element`](/documentation/TabularData/ColumnSlice/mean()-7u3i0)

Returns the mean average of the floating-point slice’s elements, ignoring missing elements.

[`func standardDeviation(deltaDegreesOfFreedom: Int) -> Double?`](/documentation/TabularData/ColumnSlice/standardDeviation(deltaDegreesOfFreedom:)-1i05i)

Returns the standard deviation of the integer column slice’s elements, ignoring missing elements.

[`func standardDeviation(deltaDegreesOfFreedom: Int) -> ColumnSlice<WrappedElement>.Element`](/documentation/TabularData/ColumnSlice/standardDeviation(deltaDegreesOfFreedom:)-3d6vo)

Returns the standard deviation of the floating-point column slice’s elements, ignoring missing elements.

### Describing a Column Slice

[`var description: String`](/documentation/TabularData/ColumnSlice/description)

A text representation of the column slice.

[`var debugDescription: String`](/documentation/TabularData/ColumnSlice/debugDescription)

A text representation of the column slice suitable for debugging.

[`var customMirror: Mirror`](/documentation/TabularData/ColumnSlice/customMirror)

A mirror that reflects the column slice.

### Comparing Two Column Slices

[`static func == (ColumnSlice<WrappedElement>, ColumnSlice<WrappedElement>) -> Bool`](/documentation/TabularData/ColumnSlice/==(_:_:))

Returns a Boolean that indicates whether the column slices are equal.

### Modifying a Column Slice with a Value

[`static func += (inout ColumnSlice<WrappedElement>, WrappedElement)`](/documentation/TabularData/ColumnSlice/+=(_:_:)-950qi)

Modifies a column slice by adding a value to each element.

[`static func -= (inout ColumnSlice<WrappedElement>, WrappedElement)`](/documentation/TabularData/ColumnSlice/-=(_:_:)-1n1gh)

Modifies a column slice by subtracting a value from each element.

[`static func *= (inout ColumnSlice<WrappedElement>, WrappedElement)`](/documentation/TabularData/ColumnSlice/*=(_:_:)-i6qs)

Modifies a column slice by multiplying each element by a value.

[`static func /= (inout ColumnSlice<WrappedElement>, WrappedElement)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-8oi36)

Modifies an integer column slice by dividing each element by a value.

[`static func /= (inout ColumnSlice<WrappedElement>, WrappedElement)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-8pl3f)

Modifies a floating-point column slice by dividing each element by a value.

### Modifying a Column Slice with a Collection of Values

[`static func += <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/+=(_:_:)-47cwm)

Modifies a column slice by adding each value in a collection to
the corresponding element in the column.

[`static func += <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/+=(_:_:)-4bgdt)

Modifies a column slice by adding each optional value in a collection to
the corresponding element in the column.

[`static func -= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/-=(_:_:)-3kauw)

Modifies a column slice by subtracting each value in a collection from
the corresponding element in the column.

[`static func -= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/-=(_:_:)-1bqy4)

Modifies a column slice by subtracting each optional value in a collection from
the corresponding element in the column.

[`static func *= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/*=(_:_:)-7lz8l)

Modifies a column slice by multiplying each element in the column by
the corresponding value in a collection.

[`static func *= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/*=(_:_:)-3v2q0)

Modifies a column slice by multiplying each element in the column by
the corresponding optional value in a collection.

[`static func /= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-46jci)

Modifies an integer column slice by dividing each element in the column by
the corresponding value in a collection.

[`static func /= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-8frqe)

Modifies an integer column slice by dividing each element in the column by
the corresponding optional value in a collection.

[`static func /= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-1fciw)

Modifies a floating-point column slice by dividing each element in the column by
the corresponding value in a collection.

[`static func /= <C>(inout ColumnSlice<WrappedElement>, C)`](/documentation/TabularData/ColumnSlice/_=(_:_:)-6ujes)

Modifies a floating-point column slice by dividing each element in the column by
the corresponding optional value in a collection.

### Generating a Column by Combining Two Column Slices

### Generating a Column by Adding a Value

### Generating a Column by Subtracting a Value

### Generating a Column by Multiplying a Value

### Generating a Column by Dividing a Value

### Hashing a Column Slice

[`func hash(into: inout Hasher)`](/documentation/TabularData/ColumnSlice/hash(into:))

Hashes the essential components of the column slice by feeding them into a hasher.

### Supporting Types

[`typealias Element`](/documentation/TabularData/ColumnSlice/Element)

The type of the column slice’s elements, which is an optional type of the parent column’s type.

[`typealias Index`](/documentation/TabularData/ColumnSlice/Index)

The type that represents a position in the column slice.

### Invoking Protocol Methods

  <doc:API-Sequence--ColumnSlice>

  <doc:API-Collection--ColumnSlice>

  <doc:API-Bidirectional-Collection--ColumnSlice>

  <doc:API-Random-Access-Collection--ColumnSlice>

### Instance Properties

[`var missingCount: Int`](/documentation/TabularData/ColumnSlice/missingCount)

The number of missing elements in the column slice.

### Default Implementations

[BidirectionalCollection Implementations](/documentation/TabularData/ColumnSlice/BidirectionalCollection-Implementations)

[Collection Implementations](/documentation/TabularData/ColumnSlice/Collection-Implementations)

[CustomDebugStringConvertible Implementations](/documentation/TabularData/ColumnSlice/CustomDebugStringConvertible-Implementations)

[CustomReflectable Implementations](/documentation/TabularData/ColumnSlice/CustomReflectable-Implementations)

[CustomStringConvertible Implementations](/documentation/TabularData/ColumnSlice/CustomStringConvertible-Implementations)

[Equatable Implementations](/documentation/TabularData/ColumnSlice/Equatable-Implementations)

[Hashable Implementations](/documentation/TabularData/ColumnSlice/Hashable-Implementations)

## Relationships

### Conforms To

[`BidirectionalCollection`](/documentation/Swift/BidirectionalCollection)

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`Collection`](/documentation/Swift/Collection)

[`Escapable`](/documentation/Swift/Escapable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`OptionalColumnProtocol`](/documentation/TabularData/OptionalColumnProtocol)

[`RandomAccessCollection`](/documentation/Swift/RandomAccessCollection)

[`MutableCollection`](/documentation/Swift/MutableCollection)

[`CustomReflectable`](/documentation/Swift/CustomReflectable)

[`Sequence`](/documentation/Swift/Sequence)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`ColumnProtocol`](/documentation/TabularData/ColumnProtocol)

[`Copyable`](/documentation/Swift/Copyable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)