1

我想我有一个非常简单易懂的问题,但我自己无法提出解决方案。

我有一个包含 10 个元素的向量,我想得到一个新向量,它由第一个元素减去第二个元素、第一个元素减去第三个元素组成,依此类推。但是,在同一个向量中,我还希望第二个元素减去第三个,第二个元素减去第四个等的数字,以及其他元素的数字。

在我看来,我需要两个 for 循环来执行此操作,但是在运行以下脚本之后,我得到了太多元素:

for (w in 1:test1){  
  for (u in 1:test1) {
     print(mean[[u]] - mean[[w]])  }}

现在我使用了打印命令,但我想将结果分配给一个向量。

先感谢您!

4

1 回答 1

3
ttt <- (1:5)^3
#[1]   1   8  27  64 125

result <- outer(ttt,ttt,"-")
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0   -7  -26  -63 -124
#[2,]    7    0  -19  -56 -117
#[3,]   26   19    0  -37  -98
#[4,]   63   56   37    0  -61
#[5,]  124  117   98   61    0

现在选择您需要的元素(我从问题中并不完全清楚)。

也许你想要这个:

t(result)[lower.tri(t(result))]
[1]   -7  -26  -63 -124  -19  -56 -117  -37  -98  -61
于 2013-02-07T14:38:10.090 回答