我认为我有一个非常简单易懂的问题,但我不能自己提出解决方案。
我有一个包含10个元素的向量,我想得到一个新的向量,它包含第一个元素减去第二个元素,第一个元素减去第三个元素,依此类推。但是,在同一个向量中,我希望第二个元素的数字减去第三个,第二个元素减去第四个,等等,以及其他元素。
在我看来,我需要两个for循环来执行此操作,但是在运行以下脚本后,我得到了太多元素:
for (w in 1:test1){
for (u in 1:test1) {
print(mean[[u]] - mean[[w]]) }}
现在我使用了print命令,但我想将结果分配给矢量。
提前谢谢!
答案 0 :(得分: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