r - 在 if 语句中比较两个向量

标签 r loops operators dataframe

我想在函数内放置停止条件。条件是第一个和第二个元素的顺序和长度是否应该完美匹配。

A <- c("A", "B", "C", "D")
B <- A
C <- c("A", "C", "C", "E")

> A == B
[1] TRUE TRUE TRUE TRUE

这是前进的好形势

> A == C

[1]  TRUE  FALSE TRUE FALSE

由于有一个假,此条件停止并输出该条件在第 2 和第 4 列不成立。

if (A != B) {
           stop("error the A and B does not match at column 2 and 4"} else {
            cat ("I am fine") 
                }
Warning message:
In if (A != B) (stop("error 1")) :
  the condition has length > 1 and only the first element will be used

我错过了一些明显的东西吗?我还可以输出错误位置在哪里?

最佳答案

all 是一个选项:

> A <- c("A", "B", "C", "D")
> B <- A
> C <- c("A", "C", "C", "E")

> all(A==B)
[1] TRUE
> all(A==C)
[1] FALSE

但您可能需要注意回收:

> D <- c("A","B","A","B")
> E <- c("A","B")
> all(D==E)
[1] TRUE
> all(length(D)==length(E)) && all(D==E)
[1] FALSE

length 的文档说它目前只输出长度为 1 的整数,但将来可能会改变,所以这就是为什么我将长度测试包装在 all.

关于r - 在 if 语句中比较两个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10374932/

相关文章:

r - R 数据集中的 TextInput 过滤器 Shiny

r - 如何在 R 中为每个其他变量创建等级变量?

php - foreach 循环重复数组中的最后一项

python - 遍历 Python 中的间隔列表并返回奇数和偶数?

ios - Swift:与点 (".") 文字相关的自定义运算符的优先级

用于组合两个函数 f 和 g 的 Haskell 表示法,其中 g 接受多个参数

r - 按组在每个单元格中存储一个向量

java - 将二维数组值更改为零

javascript - JavaScript 中的 !== 运算符是什么?

r - `dcast` 空 RHS