R - 如何比较两列以上的值

use*_*502 2 r

我正在尝试编写代码来比较几个列的值,但我事先不知道我将拥有多少列。数据将如下所示:

X   Val1    Val2    Val3    Val4
A   1        1        1       2
B   NA       2        2       2
C   3        3        3       3
Run Code Online (Sandbox Code Playgroud)

该代码应为 A 行和 B 行返回“失败”,为 C 行返回“通过”,但需要能够处理不断变化的列数。我不知道如何在不嵌套几个 for 循环的情况下做到这一点,但必须有某种方法使用 apply 或 sapply 来迭代第 2 列: length(df)

编辑:我想看看这些值(将是数字)是否相等

nic*_*ola 5

假设第一列被排除在比较之外,并且所有其他列都没有被排除,您可以尝试:

which(rowSums(df[,2]==df[,3:ncol(df)])==(ncol(df)-2))
Run Code Online (Sandbox Code Playgroud)