Número de filas y columnas en R

Introducción a R Exploración de estructuras
Número de filas y columnas en R

Devuelve el número de filas o columnas de un data frame o matriz con las funciones nrow, ncol y aprende la diferencia entre ellas y las funciones NCOL y NROW. También aprenderás a devolver o establecer tanto el número de filas como de columnas con dim.

Número de columnas con ncol

Considera el siguiente data frame llamado df:

df <- data.frame(x = 1:5, y = LETTERS[1:5])

# Imprimimos el data frame
df
  x y
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E

Inspeccionando el data frame puedes ver que tiene dos columnas, pero si tiene muchas columnas o quieres obtener ese número programáticamente puedes usar la función ncol pasando el data frame como entrada:

ncol(df)
2

La función ncol también proporciona el número de columnas de una matriz. Consideremos la siguiente matriz de ejemplo llamada m.

m <- matrix(data = 1:15, ncol = 5)

# Imprimimos la matriz
m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    4    7   10   13
[2,]    2    5    8   11   14
[3,]    3    6    9   12   15

Puedes obtener el número de columnas de m pasando la matriz como entrada a la función. En este caso vemos que la matriz tiene 5 columnas.

ncol(m)
5

R proporciona una función llamada NCOL que hace lo mismo que ncol pero trata los vectores como una matriz de una columna. Esto significa que si aplicas ncol a un vector obtendrás un valor NULL pero si aplicas NCOL obtendrás un 1.

x <- 1:5
ncol(x) # NULL
NCOL(x) # 1
ncol(NULL) # NULL
NCOL(NULL) # 1

Número de filas con nrow

Considera el mismo data frame de la sección anterior:

df <- data.frame(x = 1:5, y = LETTERS[1:5])

# Imprimimos el data frame
df
  x y
1 1 A
2 2 B
3 3 C
4 4 D
5 5 E

Puedes obtener el número de filas pasando el data frame como entrada. En este caso el número de filas del data frame es 5.

nrow(df)
5

La función también funciona para matrices. Considera la siguiente matriz de ejemplo:

m <- matrix(data = 1:15, ncol = 5)

# Imprimimos la matriz
m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    4    7   10   13
[2,]    2    5    8   11   14
[3,]    3    6    9   12   15

Si quieres obtener el número de filas de la matriz anterior puedes utilizar la función nrow de la siguiente manera. En este ejemplo la matriz tiene 3 filas.

nrow(m)
3

R también proporciona una función llamada NROW que hace lo mismo que nrow pero trata los vectores como una matriz de una columna, por lo que cada elemento del vector será tratado como una fila. Esto significa que si aplicas nrow a un vector obtendrás un valor NULL pero si aplicas NROW obtendrás el número de elementos del vector.

x <- 1:5
nrow(x) # NULL
NROW(x) # 5
nrow(NULL) # NULL
NROW(NULL) # 0

Obtener o establecer las dimensiones con dim

La función dim puede utilizarse para devolver las dimensiones de un objeto, es decir, tanto el número de filas como el de columnas.

df <- data.frame(x = 1:5, y = LETTERS[1:5])

dim(df)
5 2

El primer elemento de la salida es el número de filas y el segundo el número de columnas del data frame de muestra.

Sin embargo, esta función también puede utilizarse para establecer las dimensiones de un objeto. Considera el siguiente vector de ejemplo:

x <- 1:10

# Print x
x
1  2  3  4  5  6  7  8  9 10

Si aplicas la función dim obtendrás un NULL, ya que el objeto no tiene dimensiones.

dim(x)
NULL

No obstante, puedes establecer las dimensiones asignando un vector con las dimensiones deseadas. En el ejemplo siguiente establecemos 2 filas y 5 columnas, por lo que el vector se transforma en una matriz.

dim(x) <- c(2, 5)

# Print x
x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10

Ahora puedes comprobar que las dimensiones del objeto son las especificadas:

dim(x)
2 5