Wenn die Elemente gleich sind, ist ihre Differenz Null.
all(diff(vec1)==0)#[1] TRUE
Oder vergleichen Sie den Vektor mit seinem ersten Element.
all(vec1 == vec1[1])#[1] TRUE
Bearbeiten.
Es wurden verschiedene Methoden zur Bestimmung, ob alle Elemente eines Vektors gleich sind, veröffentlicht, siehe RHertel , Yuriy Saraykin , tmfmnk . Hier sind Vergleichstests.
library(microbenchmark)
library(ggplot2)
f <-function(n){
x <- rep(10, n)
mb <- microbenchmark(
var = var(x)==0,
sd = sd(x)==0,
diff = all(diff(x)==0),
extract = all(x == x[1]),
unique = length(unique(x))==1)
mb
}
sizes <- c(10,100, seq(1e3,1e4, by =1e3))
mb_list <- lapply(sizes, f)
names(mb_list)<- sizes
res <- lapply(seq_along(mb_list),function(i){
agg <- aggregate(time ~ expr, mb_list[[i]], median)
agg$size <- sizes[i]
agg
})
res <- do.call(rbind, res)
ggplot(res, aes(size, time, colour = expr))+
geom_point()+
geom_line()
diff(vec1)
gibt was zurück?unique
Elementlength(unique(vec1)) == 1
Antworten:
Eine Option ist
diff
.Wenn die Elemente gleich sind, ist ihre Differenz Null.
Oder vergleichen Sie den Vektor mit seinem ersten Element.
Bearbeiten.
Es wurden verschiedene Methoden zur Bestimmung, ob alle Elemente eines Vektors gleich sind, veröffentlicht, siehe RHertel , Yuriy Saraykin , tmfmnk . Hier sind Vergleichstests.
quelle
Verwenden Sie die Varianz. Wenn alle Elemente eines Vektors gleich sind, ist die Varianz Null:
quelle
Zählen Sie die Anzahl der eindeutigen Werte
quelle
Wir können
n_distinct
von verwendendplyr
quelle
Sie können es in einen Faktor umwandeln und die Ebenen erhalten, die nur 1 Wert sein sollten, wenn sie alle gleich sind.
quelle
Sie können auch die Standardabweichung berechnen und beurteilen, ob sie Null ist:
Oder mit
table()
:Oder mit
rle()
:quelle