r - 向量的元素减法?

标签 r

<分区>

我在 R 中有以下向量

x<-c(5,7,8,20,11,30)

我想得到所有可能的减法xi-xj , 1<=i<j<=6 .我用了outer函数,但我得到了一个对角线为零的矩阵。我不想拥有 xi-xji=j .另外,我想要一个向量,而不是矩阵。

最佳答案

您可以使用 lower.triupper.triouter 的输出进行子集化。

y <- outer(x, x, '-')
y[lower.tri(y)]
# [1]  2  3 15  6 25  1 13  4 23 12  3 22 -9 10 19

或者,您可以使用 seqrep 生成索引。

k <- seq(length(x) - 1, 1)
i <- rep(seq_along(k), k)
j <- sequence(k) + i
x[j] - x[i]
# [1]  2  3 15  6 25  1 13  4 23 12  3 22 -9 10 19

关于r - 向量的元素减法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63558868/

相关文章:

r - 如何在每列中获得均值?

windows - 如何在 Windows 上调用使用 scan() 的脚本?

r - 对所有数据进行子集化,每个数据都有以下不同的数字

r - 通过 R Studio Server 使用 BigQuery 在 Google Compute Engine 上验证服务帐户

r - 将 webGL html 转换为 SVG

r - 将逗号分隔的列转换为具有 bool 值的列

r - ggplot2 嵌套在水平条中的垂直条 [产品图]

c++ - 在 Mac 上,Rcpp 没有 lib 文件夹

r - 在我自己的服务器上部署一个应用程序,地址中没有端口号

r - 将三个数据框的内容合并到 R 中的一列(跨多列)