r - 向量的元素减法?
问题描述
我在 R 中有以下向量
x<-c(5,7,8,20,11,30)
我想得到所有可能的减法xi-xj
,1<=i<j<=6
。我使用outer
了函数,但我得到了一个对角线为零的矩阵。我不想xi-xj
拥有i=j
。另外,我想要一个向量,而不是矩阵。
解决方案
outer
您可以对usinglower.tri
或的输出进行子集化upper.tri
。
y <- outer(x, x, '-')
y[lower.tri(y)]
# [1] 2 3 15 6 25 1 13 4 23 12 3 22 -9 10 19
seq
或者,您可以使用和生成索引rep
。
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
推荐阅读
- html - Speechsynthesis API 是 HTML5 官方提供的吗?
- php - 如何在实时服务器上的 laravel 5.4 中发送电子邮件 Swift_TransportException 无法与主机 smtp.gmail.com 建立连接
- spring - Log4j2 未在 Linux 中使用 Spring Boot 创建日志文件
- .net - 如何在 csproj 文件中包装 MSBuild 错误任务的长文本
- asp.net-core - 无法使用 Jmeter 中的 Single Read Sampler 从 .net 核心信号器服务器读取文本
- java - 将 httpBasic 与 AuthenticationEntryPoint 一起使用
- typescript - 用于映射数组元素的 RxJS 运算符
- syntax - pub struct 属性上的“结构的字段‘0’是私有的”错误
- javascript - 使用 Lodash 链接或函数式 JS 挑战的数据操作
- google-chrome-extension - 调试时如何使用 chrome 黑盒内容脚本?