向量值比较:1个元素与所有其他元素

编程入门 行业动态 更新时间:2024-10-10 04:19:24
本文介绍了向量值比较:1个元素与所有其他元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想知道如何比较一个向量中的一个元素和另一个向量中的所有元素。例如:

I'm wondering how I can compare 1 element of a vector with all elements in the other vector. As an example: suppose

x <- c(1:10) y <- c(10,11,12,13,14,1,7)

现在我可以对元素进行比较了

Now I can compare the elements parewise

x == y [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

但是我想将y的所有元素与x的特定元素进行比较,例如

But I want to compare all elements of y with a specific element of x, something like

x[7] == y [1] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

这可能吗?

推荐答案

像这样吗?

x <- 1:10 y <- c(10,7,11,12,13,14,15,16,17,18) res <- outer(x, y, `==`) colnames(res) <- paste0("y=", y) rownames(res) <- paste0("x=", x)

这将为您提供以下矩阵:

Which gives you the following matrix:

y=10 y=7 y=11 y=12 y=13 y=14 y=15 y=16 y=17 y=18 x=1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=2 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=3 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=4 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=5 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=6 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=7 FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=8 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=9 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x=10 TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

如果您希望将暗号命名为 y [1] 使用

If you want the dimnames to be as y[1] use

colnames(res) <- paste0("y[", seq_along(y), "]") rownames(res) <- paste0("x[", seq_along(x), "]")

这将为您提供:

y[1] y[2] y[3] y[4] y[5] y[6] y[7] y[8] y[9] y[10] x[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[2] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[3] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[4] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[5] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[6] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[7] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[8] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[9] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE x[10] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

要获取索引,请使用哪个,如下所示:

To get the index use which as follows:

which(res) [1] 10 17

由于 R 按行保存矩阵结果为10和17。如果要使用x和y分量的索引,请使用:

As R saves matrices rowwise this results in 10 and 17. If you want the index in x and y component use:

which(res, arr.ind = TRUE) row col x=10 10 1 x=7 7 2

更多推荐

向量值比较:1个元素与所有其他元素

本文发布于:2023-11-30 12:49:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:元素   量值

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!