检查一行中的所有值是否相同或不适用的最有效方法

هنر*_*تان 1 row r filter dplyr data.table

我想检查每行中的所有值是否相同,但是NA应该忽略 MWE:

library(data.table)
DT=data.table(v1=c(1,2,3),v2=c(1,3,3), v3=c(NA,2,3))

DT
   v1 v2 v3
1:  1  1 NA
2:  2  3  2
3:  3  3  3

desired=c(T,F,T)

desired
[1]  TRUE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

Pea*_*ang 7

我得到了一个有效的想法

v1 = do.call(pmin, c(DT, na.rm = TRUE))
v2 = do.call(pmax, c(DT, na.rm = TRUE))
v1 == v2
Run Code Online (Sandbox Code Playgroud)