diff --git a/R/collapse_rows.R b/R/collapse_rows.R
index 86956aa..4ae0145 100644
--- a/R/collapse_rows.R
+++ b/R/collapse_rows.R
@@ -7,7 +7,8 @@
 #' specify column styles, you should use `column_spec` before `collapse_rows`.
 #'
 #' @param kable_input Output of `knitr::kable()` with `format` specified
-#' @param columns Numeric column positions where rows need to be collapsed.
+#' @param columns A numeric value or vector indicating in which column(s) rows 
+#' need to be collapsed.
 #' @param valign Select from "top", "middle"(default), "bottom". The reason why
 #' "top" is not default is that the multirow package on CRAN win-builder is
 #' not up to date.
@@ -139,19 +140,19 @@
   collapse_matrix <- collapse_row_matrix(kable_dt, columns, html = FALSE)
 
   new_kable_dt <- kable_dt
-  for (j in seq(1:ncol(collapse_matrix))) {
+  for (j in seq_along(columns)) {
     column_align <- table_info$align_vector_origin[columns[j]]
     column_width <- ifelse(
       is.null(table_info$column_width[[paste0("column_", columns[j])]]),
       "*", table_info$column_width[paste0("column_", columns[j])])
     for (i in seq(1:nrow(collapse_matrix))) {
       if(row_group_label_position == 'stack'){
-        if(j < ncol(collapse_matrix)|(collapse_matrix_rev[i, j] == 0)){
-          new_kable_dt[i, j] <- ''
+        if(columns[j] < ncol(collapse_matrix) || collapse_matrix_rev[i, j] == 0){
+          new_kable_dt[i, columns[j]] <- ''
         }
       } else {
-        new_kable_dt[i, j] <- collapse_new_dt_item(
-          kable_dt[i, j], collapse_matrix[i, j], column_width,
+        new_kable_dt[i, columns[j]] <- collapse_new_dt_item(
+          kable_dt[i, columns[j]], collapse_matrix[i, j], column_width,
           align = column_align, valign = valign
         )
       }
diff --git a/man/collapse_rows.Rd b/man/collapse_rows.Rd
index 9508bd4..4752d80 100644
--- a/man/collapse_rows.Rd
+++ b/man/collapse_rows.Rd
@@ -13,7 +13,8 @@
 \arguments{
 \item{kable_input}{Output of \code{knitr::kable()} with \code{format} specified}
 
-\item{columns}{Numeric column positions where rows need to be collapsed.}
+\item{columns}{A numeric value or vector indicating in which column(s) rows
+need to be collapsed.}
 
 \item{valign}{Select from "top", "middle"(default), "bottom". The reason why
 "top" is not default is that the multirow package on CRAN win-builder is
