gpt4 book ai didi

r - 从 Perl 中的数组中概率抽样

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:36 25 4
gpt4 key购买 nike

我在 Perl 中有一个数组,我想以概率的方式从中抽取样本。例如,在 R 中,函数 sample 为我做了这件事,例如

x = c('a','b','c','d')
sample(x,size = 2,prob = c(0.1,0.4,0.4,0.1))

上面的代码会更频繁地返回b,c。我如何在 Perl 中做同样的事情。有没有适合我的模块?提前致谢。

最佳答案

这可以在 PDL 中完成(大规模)使用 vsearch 函数。

use strict;
use warnings;

use PDL;

my @x = qw( a b c d );

my $pdf = pdl( 0.1, 0.4, 0.4, 0.1 );

# vsearch requires a CDF,
my $cdf = $pdf->dcumusumover;
$cdf /= $cdf->max;

# $sample is a piddle containing the indices into @x;
my $sample = vsearch( random(10000), $cdf );

print scalar hist( $sample, 0, 4, 1 ), "\n";

结果

% perl x.pl
[991 3974 4014 1021]

关于r - 从 Perl 中的数组中概率抽样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555495/

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