如何打印111112223455566666使用for,while或repeat?

时间:2017-11-22 17:26:24

标签: r loops

我可以通过运行

打印下面的内容
for(i in 1:5) print(i,i)) 

我在这里使用R:)

[1] 1

[1] 2 2

[1] 3 3 3 

[1] 4 4 4 4 

[1] 5 5 5 5 5  

但我真的找不到打印下面这样的东西的方法。 有人可以睁开我的眼睛吗?

[1] 1 1 1 1 1

[1] 2 2 2

[1] 3

[1] 4

[1] 5 5 5

[1] 6 6 6 6 6

3 个答案:

答案 0 :(得分:0)

如果我们希望print使用for循环,请创建一个seq

的序列
i1 <- seq(1, 5, 2)
i2 <- c(rev(i1), i1)
for(i in 1:6) print(rep(i, i2[i]))
#[1] 1 1 1 1 1
#[1] 2 2 2
#[1] 3
#[1] 4
#[1] 5 5 5
#[1] 6 6 6 6 6

如果我们需要vector,请使用rep

rep(1:6,  i2)
#[1] 1 1 1 1 1 2 2 2 3 4 5 5 5 6 6 6 6 6

答案 1 :(得分:0)

使用 mapply 略有不同的方法。但它并没有使用for或while子句。

a1<-1:6
a2<-c(5,3,1)

paste(mapply(rep,list(1:6),list(c(a2,rev(a2)))),collapse="", sep="")

答案 2 :(得分:0)

n = 6
for(i in 1:n) print(rep(i, max(1, 2*abs(i - (n+1)/2))))
#[1] 1 1 1 1 1
#[1] 2 2 2
#[1] 3
#[1] 4
#[1] 5 5 5
#[1] 6 6 6 6 6