gpt4 book ai didi

r - 如何知道一个向量是否由相同的元素组成?

转载 作者:行者123 更新时间:2023-12-03 14:32:42 25 4
gpt4 key购买 nike

如何检查向量是否具有所有相同的元素?

例如,假设我有:

vec1 = rep(10,20)
vec2 = seq(1:20)

我怎样才能显示 vec1有所有相同的元素吗?

最佳答案

一个选项是 diff .

diff(vec1)

如果元素相等,则它们的差为零。
all(diff(vec1) == 0)
#[1] TRUE

或者将向量与其第一个元素进行比较。
all(vec1 == vec1[1])
#[1] TRUE

编辑。

发布了几种确定向量的所有元素是否相等的方法,请参阅 RHertel , Yuriy Saraykin , tmfmnk .下面是对比测试。
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()

enter image description here

关于r - 如何知道一个向量是否由相同的元素组成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60477359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com