Home > Back-end >  how to create a vector of blank spaces of different sizes in R
how to create a vector of blank spaces of different sizes in R

Time:08-09

I have a vector of "sizes" or "widths", like this one:

x <- c(1, 4, 6, 10)

and I would like to create another vector based on x, a vector like this one:

y <- c(" ", "    ", "      ", "          ")

Basically there are two imputs for creating y: the blank space " " and the vector x.

So as you can see, the vector x defines the length of the blank spaces in y. I know I can do this creating a function from scratch, but I'm guessing if there's some kind of function or combination with rep, paste0 or other built in functions in R.

Any idea? thanks.

CodePudding user response:

Use strrep:

strrep(" ", c(1, 4, 6, 10))
#> [1] " "          "    "       "      "     "          "

In stringr, you can also use str_dup:

stringr::str_dup(" ", c(1, 4, 6, 10))
#> [1] " "          "    "       "      "     "          "

CodePudding user response:

A possible solution:

x <- c(1, 4, 6, 10)

sapply(x, \(y) paste0(rep(" ", y), collapse = ""))

#> [1] " "          "    "       "      "     "          "

CodePudding user response:

Here is a solution.

x <- c(1, 4, 6, 10)
y <- sapply(x, \(n) formatC(" ", width = n))
y
#> [1] " "          "    "       "      "     "          "

Created on 2022-08-09 by the reprex package (v2.0.1)

CodePudding user response:

library(stringr)

x <- c(1, 4, 6, 10)

y <- str_pad(" ", width = x)

y
#> [1] " "          "    "       "      "     "          "

Created on 2022-08-09 by the reprex package (v2.0.1)

  • Related