R:将标量向量转换为一个向量

时间:2016-10-20 11:40:28

标签: r

我有这段代码:

n<-5

for (i in 1:n) {
    for (k in 1:n) {
        print (i-k)
    }
}

因此,结果是标量向量。但是我需要得到一个包含所有结果的向量,如下所示:

[1] 0 -1 -2 -3 -4 1 0 -1 -2 

等。 我怎么才能得到它?尝试unlist(),但没有成功。

2 个答案:

答案 0 :(得分:1)

试试这个矢量化:

n <- 5
as.vector(t(outer(1:n,1:n,'-')))
#[1]  0 -1 -2 -3 -4  1  0 -1 -2 -3  2  1  0 -1 -2  3  2  1  0 -1  4  3  2  1  0

OR

as.vector(sapply(1:n, function(i) i-(1:n)))

OR

as.vector(sapply(1:n,'-',1:n))

答案 1 :(得分:0)

这样的事情?您的结果将是a ...

n <- 5 
a <- c()
for(i in 1:n) { 
  for(k in 1:n) { 
    print (i-k) 
    a <- c(a, i-k)
  } 
}