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

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

我想知道如何将一个向量的 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)

它为您提供以下矩阵:

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

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

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

发布评论

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

>www.elefans.com

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