Как можно распечатать все значения вектора с помощью cat?

В целях форматирования я хочу распечатать значения массива с помощью cat().

Я могу сделать это легко используя цикл for... но я хочу сделать это "правильным" способом.

randNums <- rnorm(5)
for(i in randNums){
  cat("n")
  cat(",")
  cat(i)
  cat("\n")
}

Выход:

n,-0.06339912
n,1.276653
n,0.1581441
n,-1.347136
n,1.777113

Под "правильным способом" я имею в виду использование одной из функций apply, а не цикла for.

2 ответа

Решение

Чтобы получить точную форму вывода, с "n" и значением:

> cat(paste("n", randNums,sep=",", collapse="\n"), '\n')
n,-0.135970405811417
n,2.19536614784033
n,0.567067477368411
n,1.97238205385431
n,-0.34726999999616 

с помощью applyСемейные функции приводят к такой путанице:

> invisible(lapply(randNums,function(x){cat("n,",x,"\n",sep="")}))
n,1.56346
n,1.360061
n,2.048337
n,0.234013
n,0.1050811

Вы можете попробовать

cat(paste(seq_along(randNums), randNums,sep=",", collapse="\n"), '\n')

Если тебе нужно 'n'

cat(paste('n', randNums,sep=",", collapse="\n"), '\n')
Другие вопросы по тегам