首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从向量R中的每一个其他值减去向量中的每一个值

从向量R中的每一个其他值减去向量中的每一个值
EN

Stack Overflow用户
提问于 2018-02-11 15:43:16
回答 1查看 2.3K关注 0票数 3

假设我有一个矩阵

代码语言:javascript
复制
    data<-matrix(seq(1,6),ncol=2,nrow=3,byrow=TRUE)
          A  B
    [1,]  1  2
    [2,]  3  4
    [3,]  5  6

从列'A‘开始,我想要创建一个向量,表示'A’中的每个数字和'A‘中的每一个其他数之间的两两差异。实际上:

代码语言:javascript
复制
    c(1-1, 1-3, 1-5, 3-1, 3-3, 3-5, 5-1, 5-3, 5-5)

然后我需要对第二列做同样的事情,以此类推。最后,我需要将这些向量绑定到一个新的差异矩阵中。

我觉得这应该适用于应用函数,或者可能是just (),但我就是不能把它放在一起。

谢谢你的帮助!

PS。如果答案涉及编写函数或for循环,请给我一个虚拟-中等水平的解释好吗?我是第一次学习编码,我仍然不能把我的头放在循环上,我仍然在为编写我自己的函数的逻辑而挣扎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-11 15:47:29

如果我们需要对每一列上的每个成对元素进行减法,然后用apply循环遍历apply的列,得到成对的组合为带有expand.grid的两列data.frame,并使用Reduce减去列。

代码语言:javascript
复制
apply(data, 2, FUN = function(x) Reduce('-', expand.grid(rep(list(x), 2))))

或者另一个选项是在遍历列之后使用outer

代码语言:javascript
复制
apply(data, 2, FUN = function(x) outer(x, x, FUN = '-'))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48733257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档