Вот очень сырое решение и не полностью базовый R:
counts <- c(5, 4.9, 4.4, 4.8, 4.9, 5.0, 4.9, 4.9, 4.9)
library(stringr) # for the function str_wrap()
library(magrittr) # just for the pipe %>%, not strictly necessary
names(counts) <- c(
"I'm working on a horizontal",
"barplot with survey data.",
"The labels for the y axis",
"will be questions from the survey.",
"The questions are rather long, and",
"therefore I need to wrap the text",
"of each question so that it appears",
"on 2-3 lines. Can someone share",
"how to most simply do this in base R?") %>% str_wrap(width = 20)
par(mai=c(1,2,1,1)) # make space for the label
barplot(counts, col=c("deepskyblue2"), border = NA, family="Arial", horiz = T, xlim = range(0,6), las = 2)

PS.если база R является строгим требованием, вы должны иметь возможность кодировать что-то похожее на str_wrap()
.
РЕДАКТИРОВАТЬ
Вы можете определить свою собственную функцию на основе strwrap()
из базы R и отбросьте зависимость stringr
:
our_strwrap <- function(x) lapply(strwrap(x, width = 20, simplify= FALSE), paste, collapse = "\n")