Как можно распечатать все значения вектора с помощью 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')