Convert an object containing binary (integer) fields (columns) into a integer vector indicating the column index where each row is 1.

category_vector(x)

# S3 method for data.frame
category_vector(x)

# S3 method for sf
category_vector(x)

# S3 method for Spatial
category_vector(x)

# S3 method for matrix
category_vector(x)

Arguments

x

matrix, data.frame, Spatial, or sf::sf() object.

Value

integer vector

Details

This function is conceptually similar to base::max.col() except that rows with no values equal to 1 values are assigned a value of zero. Also, note that in the argument to x, each row must contain only a single value equal to 1.

See also

Examples

# create matrix with logical fields
x <- matrix(c(1, 0, 0, NA, 0, 1, 0, NA, 0, 0, 0, NA), ncol = 3)

# print matrix
print(x)
#>      [,1] [,2] [,3]
#> [1,]    1    0    0
#> [2,]    0    1    0
#> [3,]    0    0    0
#> [4,]   NA   NA   NA

# convert to category vector
y <- category_vector(x)

# print category vector
print(y)
#> [1]  1  2  0 NA