我想将这两个函数结合起来得到香农多样性指数。
怎么办?
第一个函数是使用 Data::Dumper 来获取唯一编号。
#!perl
use warnings;
use strict;
use Data::Dumper;
$Data::Dumper::Sortkeys=1;
my @names = qw(A A A A B B B C D);
my %counts;
$counts{$_}++ for @names;
printf "\$VAR1 = { %s};\n",
join ' ',
map "$_ ",
sort { $b <=> $a }
values(%counts);
exit;
这是输出
$VAR1 = { 4 3 1 1 };
然后我可以将它输入到第二个函数中。
第二个函数Statistics::Diversity::Shannon
用于获取香农多样性指数。
#!perl
use warnings;
use strict;
use Statistics::Diversity::Shannon;
my @data = qw( 4 3 1 1 );
my $d = Statistics::Diversity::Shannon->new( data => \@data );
my $H = $d->index();
my $E = $d->evenness();
print "$d/$H/$E";
exit;
如何通过使用原始数据集 (AAAABBBCD) 将这两个函数组合成一个完整的循环来获得香农多样性指数。