【PHP】PHP-FrequencyTable 機能追加

PHP

PHP-FrequencyTable って何?

度数分布表を簡単に作成できるPHPライブラリです。

Githubで公開しています。Composerでインストールできます。

GitHub - macocci7/PHP-FrequencyTable: it's easy to use for creating frequency distribution tables.
it's easy to use for creating frequency distribution tables. - macocci7/PHP-FrequencyTable

使い方の詳細は前回の記事を参考にしてください。

追加した機能

  • CSV出力
  • TSV出力
  • HTML出力

CSV出力

コードを見ていきましょう。

<?php
require('../vendor/autoload.php');

use Macocci7\PhpFrequencyTable\FrequencyTable;

$data = [0,5,10,15,20];
$ft = new FrequencyTable(['data' => $data, 'classRange' => 10]);
$ft->setColumns2Show(['Class', 'Frequency']);

$ft->csv('test.csv');

これで test.csv に度数分布表が保存されます。

"Class","Frequency"
"0 ~ 10","2"
"10 ~ 20","2"
"20 ~ 30","1"
"Total","5"

これならExcelで開くなり好きにできますね。

TSV出力

今どき使われているのか疑問ですが、一応作ってみました。

<?php
require('../vendor/autoload.php');

use Macocci7\PhpFrequencyTable\FrequencyTable;


$ft = new FrequencyTable();

$ft->setClassRange(10);
$ft->setData([0,5,10,15,20]);
$ft->setColumns2Show(['Class', 'Frequency']);

$ft->tsv('test.tsv');

やっていることは、CSVのカンマをタブコード “\t” に変えただけです。

CSVとTSVの出力は共通のメソッドを使っていて、

カンマを渡すかタブコードを渡すかの違いだけです。

そうです、TSVはおまけで作っただけです。

"Class"	"Frequency"
"0 ~ 10"	"2"
"10 ~ 20"	"2"
"20 ~ 30"	"1"
"Total"	"5"

今は何の苦もなくExcelで普通に開けるんですね。

HTML出力

どうもMarkdownだけでは使い勝手が良くないようだと思い作りました。

<?php
require('../vendor/autoload.php');

use Macocci7\PhpFrequencyTable\FrequencyTable;


$ft = new FrequencyTable();

$ft->setClassRange(10);
$ft->setData([0,5,10,15,20]);

$ft->html('test.html');

HTMLに出力といっても、テーブルタグの部分だけを出力します。

<table>
<tr><td>Class</td><td>Frequency</td><td>RelativeFrequency</td><td>ClassValue</td><td>ClassValue * Frequency</td></tr>
<tr><td>0 ~ 10</td><td>2</td><td>0.40</td><td>5.0</td><td>10.0</td></tr>
<tr><td>10 ~ 20</td><td>2</td><td>0.40</td><td>15.0</td><td>30.0</td></tr>
<tr><td>20 ~ 30</td><td>1</td><td>0.20</td><td>25.0</td><td>25.0</td></tr>
<tr><td>Total</td><td>5</td><td>1.00</td><td>---</td><td>65.0</td></tr>
</table>

飾りっ気の無い、純粋無垢なHTMLなので、あとはスタイル追加するなりID追加するなり

あなたの色に染めてください。

(2024/03/03追記)

バージョン1.2.0にアップデートした記事を追加しました。

こちらもご参照ください。

コメント

タイトルとURLをコピーしました