我有这段代码:
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()
,但没有成功。
答案 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)
}
}