<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 10.14.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CreateML",
  "identifier" : "/documentation/CreateML/MLUntypedColumn",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Create ML"
    ],
    "preciseIdentifier" : "s:8CreateML15MLUntypedColumnV"
  },
  "title" : "MLUntypedColumn"
}
-->

# MLUntypedColumn

A column of untyped values in a data table.

```
struct MLUntypedColumn
```

## Overview

A column is a homogenous collection of data values, similar to an
<doc://com.apple.documentation/documentation/Swift/Array>. Columns are the
main components of an [`MLDataTable`](/documentation/CreateML/MLDataTable) and are designed to efficiently scale
with large data sets.

Typically you use [`MLDataColumn`](/documentation/CreateML/MLDataColumn), the typed equivalent to
[`MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn), for its type-specific functionality.

Untyped columns are especially useful when:

- You’re initializing a data table with columns by using [`init(namedColumns:)`](/documentation/CreateML/MLDataTable/init(namedColumns:)).
- You’re using columns of a non-Boolean type to filter a data table with [`subscript(_:)`](/documentation/CreateML/MLDataTable/subscript(_:)-10r4l).
- You don’t need to work directly with the underlying type.

Each element of an untyped column is an [`MLDataValue`](/documentation/CreateML/MLDataValue), and has an
*underlying type* that conforms to [`MLDataValueConvertible`](/documentation/CreateML/MLDataValueConvertible). The
underlying type is hidden from the Swift compiler and is what makes an
[`MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn) untyped. Using an untyped column allows you to quickly
write type-agnostic code with Create ML.

```swift
let column = MLUntypedColumn([2, 3, 5, 7, 11])
let columnOver2 = column / 2 print(columnOver2)
/* Prints...
 ValueType: Double
 Values:        [1.0, 1.5, 2.5, 3.5, 5.5]
 */
```

However, by avoiding type safety at compile time, you expose your code to
errors at runtime. When an error occurs during an operation, Create ML marks
the product of that operation *invalid* by setting
[`isValid`](/documentation/CreateML/MLUntypedColumn/isValid) to `false` and by setting
[`error`](/documentation/CreateML/MLUntypedColumn/error) with a value. For example, using a slash (`/`)
operator to divide a column of integers with a string produces an invalid
column.

```swift
let column = MLUntypedColumn([2, 3, 5, 7, 11])
let invalidColumn = column / "foo"
print(invalidColumn.isValid) // Prints "false"
```

> Important: A mismatch between the underlying types of two columns, or
> between the underlying type of a column and the type of a value, will result
> in an invalid column.

Once a column becomes invalid, you can’t use it for any subsequent operation
because it will only produce further invalid columns or invalid tables.

Each comparison operator of [`MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn) returns a column of
Booleans. However, [`MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn) uses integers as its underlying type
for columns of Booleans, because [`MLDataValue`](/documentation/CreateML/MLDataValue) does not have a case for
<doc://com.apple.documentation/documentation/Swift/Bool>.

For example, create an untyped column of Booleans using the less-than
comparison operator([`<(_:_:)`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-7zms0)).

```swift
let column = MLUntypedColumn([2, 3, 5, 7, 11])
let lessThan5 = column < 5
```

Then print the column to see that its underlying `ValueType` is `Int`, and
each Boolean value of `true` or `false` is represented in the column by an
integer value of `1` or `0`, respectively.

```swift
print(lessThan5)
/* Prints...
 ValueType: Int
 Values:        [1, 1, 0, 0, 0]
 */
```

Use these untyped columns of Booleans just as you would with a typed column
of Booleans
(``MLDataColumn```<`<doc://com.apple.documentation/documentation/swift/bool>`>`)
to:

- Filter another untyped column with [`subscript(_:)`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-9hr32)
- Logically combine with another untyped column of Booleans with the
  [`&&(_:_:)`](/documentation/CreateML/MLUntypedColumn/&&(_:_:)) and [`||(_:_:)`](/documentation/CreateML/MLUntypedColumn/__(_:_:)) operators
- Mask rows of an [`MLDataTable`](/documentation/CreateML/MLDataTable) with its [`subscript(_:)`](/documentation/CreateML/MLDataTable/subscript(_:)-3opgl)

## Topics

### Creating an untyped column

[`init(repeating:count:)`](/documentation/CreateML/MLUntypedColumn/init(repeating:count:))

Creates a new column with a repeating value.

[`init<T>(repeating: T, count: Int)`](/documentation/CreateML/MLUntypedColumn/init(repeating:count:)-7ttf1)

Creates a new column with a repeating value.

[`init(repeating: MLDataValue, count: Int)`](/documentation/CreateML/MLUntypedColumn/init(repeating:count:)-q8yk)

Creates a new column with a repeating value.

[`init(_:)`](/documentation/CreateML/MLUntypedColumn/init(_:))

Creates a new column of integers from a given closed range.

[`init(Range<Int>)`](/documentation/CreateML/MLUntypedColumn/init(_:)-33tcv)

Creates a new column of integers from a given range.

[`init(ClosedRange<Int>)`](/documentation/CreateML/MLUntypedColumn/init(_:)-9no5)

Creates a new column of integers from a given closed range.

[`init<S>(S)`](/documentation/CreateML/MLUntypedColumn/init(_:)-ag8f)

Creates a new column from a given sequence of elements that can be
converted to machine learning data values.

[`init<S>(S)`](/documentation/CreateML/MLUntypedColumn/init(_:)-5by2g)

Creates a new column from a given sequence of machine learning data
values.

[`init()`](/documentation/CreateML/MLUntypedColumn/init())

Creates an empty, invalid column used to remove an existing column from
a data table.

### Creating an untyped column by converting another column

[`init(ints: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(ints:))

Creates a new column of integers by converting the elements of another
column.

[`init(doubles: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(doubles:))

Creates a new column of doubles by converting the elements of another
column.

[`init(strings: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(strings:))

Creates a new column of strings by converting the elements of another
column.

[`init(sequences: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(sequences:))

Creates a new column of machine learning sequences by converting the
elements of another column.

[`init(dictionaries: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(dictionaries:))

Creates a new column of machine learning dictionaries by converting the
elements of another column.

[`init(multiArrays: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/init(multiArrays:))

Creates a MLUntypedColumn of type MLMultiArray from the specified MLUntypedColumn if the values of
the given MLUntypedColumn are convertible to MLDataValue.MultiArrayType.

### Getting the number of elements

[`var count: Int`](/documentation/CreateML/MLUntypedColumn/count)

The number of elements in the column.

[`var isEmpty: Bool`](/documentation/CreateML/MLUntypedColumn/isEmpty)

### Getting an element

[`subscript(Int) -> MLDataValue`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-6j6rb)

Accesses the element at the given position.

### Appending to an untyped column

[`func append(contentsOf: MLUntypedColumn)`](/documentation/CreateML/MLUntypedColumn/append(contentsOf:))

Appends the elements of the given column to the end of this column.

### Duplicating a column

[`func copy() -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/copy())

Returns a new MLUntypedColumn by copying the original MLUntypedColumn

### Sorting elements to generate a column

[`func sort(byIncreasingOrder: Bool) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/sort(byIncreasingOrder:))

Returns a new MLUntypedColumn containing values sorted by the specified order.

### Converting a column to generate a data column

[`func map<T>(to: T.Type) -> MLDataColumn<T>`](/documentation/CreateML/MLUntypedColumn/map(to:))

Creates a new column of typed values by converting this untyped column
to the given type.

### Exposing the underlying type to generate a data column

[`var type: MLDataValue.ValueType`](/documentation/CreateML/MLUntypedColumn/type)

The underlying type of the column.

[`var ints: MLDataColumn<Int>?`](/documentation/CreateML/MLUntypedColumn/ints)

A cloned data column of integers.

[`var doubles: MLDataColumn<Double>?`](/documentation/CreateML/MLUntypedColumn/doubles)

A cloned data column of doubles.

[`var strings: MLDataColumn<String>?`](/documentation/CreateML/MLUntypedColumn/strings)

A cloned data column of strings.

[`var sequences: MLDataColumn<MLDataValue.SequenceType>?`](/documentation/CreateML/MLUntypedColumn/sequences)

A cloned data column of machine learning sequences.

[`var dictionaries: MLDataColumn<MLDataValue.DictionaryType>?`](/documentation/CreateML/MLUntypedColumn/dictionaries)

A cloned data column of machine learning dictionaries.

[`var multiArrays: MLDataColumn<MLDataValue.MultiArrayType>?`](/documentation/CreateML/MLUntypedColumn/multiArrays)

A cloned data column of machine learning multi-arrays.

[`func column<T>(type: T.Type) -> MLDataColumn<T>?`](/documentation/CreateML/MLUntypedColumn/column(type:))

Clones the column to a data column of the given type.

### Transforming elements to generate a data column

[`func map(_:)`](/documentation/CreateML/MLUntypedColumn/map(_:))

Creates a new column of typed values by applying the given thread-safe
transform to every non-missing element of this untyped column.

[`func map<T>((MLDataValue) -> T) -> MLDataColumn<T>`](/documentation/CreateML/MLUntypedColumn/map(_:)-139qy)

Creates a new column of typed values by applying the given thread-safe
transform to every non-missing element of this untyped column.

[`func map<T>((MLDataValue) -> T?) -> MLDataColumn<T>`](/documentation/CreateML/MLUntypedColumn/map(_:)-9v61j)

Creates a new column of typed values, potentially with missing values,
by applying the given thread-safe transform to every non-missing element
of this untyped column.

[`func mapMissing<T>((MLDataValue) -> T?) -> MLDataColumn<T>`](/documentation/CreateML/MLUntypedColumn/mapMissing(_:))

Creates a new column of typed values by applying the given thread-safe
transform to every element of this untyped column, including missing
elements.

### Masking elements to generate an untyped column

[`subscript(_:)`](/documentation/CreateML/MLUntypedColumn/subscript(_:))

Accesses the element at the given position.

[`subscript(MLDataColumn<Bool>) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-8ot43)

Creates a subset of the column by masking its elements with a data
column of Booleans.

[`subscript(MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-9hr32)

Creates a subset of the column by masking its elements with another
untyped column.

### Discarding elements to generate an untyped column

[`func dropMissing() -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/dropMissing())

Creates a subset of the column by removing all elements without a value.

[`func dropDuplicates() -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/dropDuplicates())

Creates a subset of the column by removing all duplicate elements.

### Selecting elements to generate an untyped column

[`subscript(Range<Int>) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-33ua2)

Creates a subset of the column, given a range of elements.

[`subscript<R>(R) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/subscript(_:)-9dpy7)

Creates a subset of the column, given a range expression of elements.

[`func prefix(Int) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/prefix(_:))

Creates a subset of the column, given a number of initial elements.

[`func suffix(Int) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/suffix(_:))

Creates a subset of the column, given a number of final elements.

### Filling in missing elements to generate an untyped column

[`func fillMissing(with: MLDataValue) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/fillMissing(with:))

Creates a modified copy of the column such that every missing element is
replaced with the given value.

### Evaluating elements to generate an untyped column

[`func materialize() throws -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/materialize())

Creates a new column by immediately evaluating any lazily applied data
processing operations stored in the column.

### Combining columns

[`static +(_:_:)`](/documentation/CreateML/MLUntypedColumn/+(_:_:))

Creates a column by adding each element in the first column to the
corresponding element in the second column.

[`static -(_:_:)`](/documentation/CreateML/MLUntypedColumn/-(_:_:))

Creates a column by subtracting each element in the second column from
the corresponding element in the first column.

[`static *(_:_:)`](/documentation/CreateML/MLUntypedColumn/*(_:_:))

Creates a column by multiplying each element in the first column by the
corresponding element in the second column.

[`static /(_:_:)`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-20v6v)

Creates a column by dividing each element in the first column by the
corresponding element in the second column.

### Combining columns to generate an untyped column

[`static func + (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/+(_:_:)-bcc5)

Creates a column by adding each element in the first column to the
corresponding element in the second column.

[`static func - (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/-(_:_:)-3h4o4)

Creates a column by subtracting each element in the second column from
the corresponding element in the first column.

[`static func * (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/*(_:_:)-2p6nm)

Creates a column by multiplying each element in the first column by the
corresponding element in the second column.

[`static func / (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-45tpp)

Creates a column by dividing each element in the first column by the
corresponding element in the second column.

### Combining a column with a value to generate an untyped column

[`static func + (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/+(_:_:)-4vnbk)

Creates a column by adding each element of the given column to the given
value.

[`static func - (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/-(_:_:)-4uigi)

Creates a column by subtracting the given value from each element of the
given column.

[`static func * (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/*(_:_:)-6gnlx)

Creates a column by multiplying each element of the given column by the
given value.

[`static func / (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-18srk)

Creates a column by dividing each element of the given column by the
given value.

### Combining a value with a column to generate an untyped column

[`static func + (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/+(_:_:)-miqp)

Creates a column by adding the given value to each element of the given
column.

[`static func - (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/-(_:_:)-9gm9i)

Creates a column by subtracting each element of the given column from
the given value.

[`static func * (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/*(_:_:)-7svdc)

Creates a column by multiplying the given value by each element of the
given column.

[`static func / (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-aw9o)

Creates a column by dividing the given value by each element of the
given column.

### Comparing columns

[`static ==(_:_:)`](/documentation/CreateML/MLUntypedColumn/==(_:_:))

Creates a column of Booleans by testing whether each element in the
first column is equal to the corresponding element in the second column.

[`static !=(_:_:)`](/documentation/CreateML/MLUntypedColumn/!=(_:_:))

Creates a column of Booleans by testing whether each element in the
first column is not equal to the corresponding element in the second
column.

[`static >(_:_:)`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-1hr3j)

Creates a column of Booleans by testing whether each element in the
first column is greater than the corresponding element in the second
column.

[`static <(_:_:)`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-9ke05)

Creates a column of Booleans by testing whether each element in the
first column is less than the corresponding element in the second
column.

[`static <=(_:_:)`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-2i3xz)

Creates a column of Booleans by testing whether each element in the
first column is less than or equal to the corresponding element in the
second column.

[`static >=(_:_:)`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-221lt)

Creates a column of Booleans by testing whether each element in the
first column is greater than or equal to the corresponding element in
the second column.

### Comparing columns to generate an untyped column of booleans

[`static func == (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/==(_:_:)-3o7mo)

Creates a column of Booleans by testing whether each element in the
first column is equal to the corresponding element in the second column.

[`static func != (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/!=(_:_:)-86hu4)

Creates a column of Booleans by testing whether each element in the
first column is not equal to the corresponding element in the second
column.

[`static func > (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-9r2zq)

Creates a column of Booleans by testing whether each element in the
first column is greater than the corresponding element in the second
column.

[`static func < (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-7zms0)

Creates a column of Booleans by testing whether each element in the
first column is less than the corresponding element in the second
column.

[`static func <= (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-5xmwz)

Creates a column of Booleans by testing whether each element in the
first column is less than or equal to the corresponding element in the
second column.

[`static func >= (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-4u3ir)

Creates a column of Booleans by testing whether each element in the
first column is greater than or equal to the corresponding element in
the second column.

### Comparing a column with a value to generate an untyped column of booleans

[`static func == (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/==(_:_:)-7xysh)

Creates a column of Booleans by testing whether each element in the
given column is equal to the given value.

[`static func != (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/!=(_:_:)-7do9)

Creates a column of Booleans by testing whether each element in the
given column is not equal to the given value.

[`static func > (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-2mdrt)

Creates a column of Booleans by testing whether each element in the
given column is greater than the given value.

[`static func < (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-8w60f)

Creates a column of Booleans by testing whether each element in the
given column is less than the given value.

[`static func <= (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-1wkt3)

Creates a column of Booleans by testing whether each element in the
given column is less than or equal to the given value.

[`static func >= (MLUntypedColumn, any MLDataValueConvertible) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-2vu3g)

Creates a column of Booleans by testing whether each element in the
given column is greater than or equal to the given value.

### Comparing a value with a column to generate an untyped column of booleans

[`static func == (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/==(_:_:)-6z88q)

Creates a column of Booleans by testing whether the given value is equal
to each element in the given column.

[`static func != (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/!=(_:_:)-6k3p6)

Creates a column of Booleans by testing whether the given value is not
equal to each element in the given column.

[`static func > (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-52drj)

Creates a column of Booleans by testing whether the given value is
greater than each element in the given column.

[`static func < (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_(_:_:)-6qou9)

Creates a column of Booleans by testing whether the given value is less
than each element in the given column.

[`static func <= (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-t4bt)

Creates a column of Booleans by testing whether the given value is less
than or equal to each element in the given column.

[`static func >= (any MLDataValueConvertible, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/_=(_:_:)-6yycf)

Creates a column of Booleans by testing whether the given value is
greater than or equal to each element in the given column.

### Combining columns of booleans to generate an untyped column of booleans

[`static func && (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/&&(_:_:))

Creates a column of Booleans by performing a logical AND operation on
each row of two columns of Booleans.

[`static func || (MLUntypedColumn, MLUntypedColumn) -> MLUntypedColumn`](/documentation/CreateML/MLUntypedColumn/__(_:_:))

Creates a column of Booleans by performing a logical OR operation on
each row of two columns of Booleans.

### Visualizing a column

[`func show() -> any MLStreamingVisualizable`](/documentation/CreateML/MLUntypedColumn/show())

Provides a visualization for the data in the column.

### Getting a description of an untyped column

[`var description: String`](/documentation/CreateML/MLUntypedColumn/description)

A text representation of the column.

[`var playgroundDescription: Any`](/documentation/CreateML/MLUntypedColumn/playgroundDescription)

A description of the column shown in a playground.

[`var debugDescription: String`](/documentation/CreateML/MLUntypedColumn/debugDescription)

A text representation of the column for debugging.

[`var customMirror: Mirror`](/documentation/CreateML/MLUntypedColumn/customMirror)

A view of the column for Xcode Playgrounds and lldb.

### Handling untyped column errors

[`var isValid: Bool`](/documentation/CreateML/MLUntypedColumn/isValid)

A Boolean value that indicates whether the column is valid.

[`var error: (any Error)?`](/documentation/CreateML/MLUntypedColumn/error)

The underlying error present when the column is invalid.

### Default Implementations

[CustomDebugStringConvertible Implementations](/documentation/CreateML/MLUntypedColumn/CustomDebugStringConvertible-Implementations)

[CustomPlaygroundDisplayConvertible Implementations](/documentation/CreateML/MLUntypedColumn/CustomPlaygroundDisplayConvertible-Implementations)

[CustomReflectable Implementations](/documentation/CreateML/MLUntypedColumn/CustomReflectable-Implementations)

[CustomStringConvertible Implementations](/documentation/CreateML/MLUntypedColumn/CustomStringConvertible-Implementations)

## Relationships

### Conforms To

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

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

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

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

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

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

---

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)