我可以通过运行
打印下面的内容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
答案 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