本文介绍了向量值比较: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个元素与所有其他元素
发布评论