gpt4 book ai didi

r - 将长向量中的元素剪裁到 +/- 阈值

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:27:44 31 4
gpt4 key购买 nike

我正在用 R 编写程序。我卡在这里。

我有像这样的矢量

X=c(84.05, 108.04, 13.95, -194.05, 64.03, 208.05, 84.13, 57.04)

我想在用 180 替换该向量中 >180 的所有元素后得到一个向量以及所有小于 <-180 x -180 的元素。

如我所愿,

X=c(84.05, 108.04, 13.95,-180, 64.03, 180, 84.13, 57.04)

如何做到这一点??

我正在处理的向量非常大。

最佳答案

尝试使用 pmin

> pmin(abs(X), 180)*sign(X)
[1] 84.05 108.04 13.95 -180.00 64.03 180.00 84.13 57.04

基准

> Jilber <- function() pmin(abs(X), 180)*sign(X)
> MrFlick <- function() pmin(pmax(X, -180), 180)
> user1317221_G <- function() ifelse(X < -180,-180, ifelse(X > 180, 180, X))
> benchmark(replications=50000,
+ Jilber(),
+ MrFlick(),
+ user1317221_G(),
+ columns=c('test', 'elapsed', 'relative'))
test elapsed relative
1 Jilber() 0.835 1.000
2 MrFlick() 1.297 1.553
3 user1317221_G() 1.709 2.047

关于r - 将长向量中的元素剪裁到 +/- 阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913746/

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