如何在R中将输出列表打印为1行

时间:2017-04-06 15:36:09

标签: r function

作为练习的一部分,我应该编写一个替换R中seq()命令的函数。

我设法做了一个类似的工作:

seq2 <- function(a,r,n){  #a is the starting number, r is the increment, n is the length out
 i <- a
 k <- 1
 repeat{
   print(i)
   i<-i+r
   k=k+1
   if(k>n)
     break
  }
}

然而,输出并不是我想要的。例如,在调用seq()命令时,如下所示:

seq(10,by=5,lenght.out=15)

输出

 [1] 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80

而我的代码有这个输出:

seq2(10,5,15)
[1] 10
[1] 15
[1] 20
[1] 25
[1] 30
[1] 35
[1] 40
[1] 45
[1] 50
[1] 55
[1] 60
[1] 65
[1] 70
[1] 75
[1] 80

那么有没有办法调整我的代码,使其产生与seq()命令相同的输出?

由于

1 个答案:

答案 0 :(得分:1)

您可以在函数中创建一个新向量,并在结尾处返回该向量:

seq2 <- function(a,r,n){  #a is the starting number, r is the increment, n is the length out
  i <- a
  k <- 1
  out = c()
  repeat{
    out = c(out,i)
    i<-i+r
    k=k+1
    if(k>n)
      break
 }
 return(out)
}