メイン freq.html Last modified: Sep 01, 2009
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;CHARSET=EUC-JP">
<link rel="shortcut icon" href="../favicon.ico">
<title>JavaScript</title>
<script src="io.js">document.write("io.js ファイルが見つかりません??<br>")</script>
<script language="JavaScript">
<!--
var round_flag = 1
function exchange(freq, xrin, nxr)
{
var i, k, minx, mink, temp
for (i = 0; i < nxr-1; i++) {
minx = xrin[i]
mink = i
for (k = i+1; k < nxr; k++) {
if (xrin[k] < minx) {
minx = xrin[k]
mink = k
}
}
if (mink != i) {
temp = xrin[i]
xrin[i] = minx
xrin[mink] = temp
temp = freq[i]
freq[i] = freq[mink]
freq[mink] = temp
}
}
}
function round1(x)
{
var i = 0
if (x == 0) {
return 0.0
}
while (x > 1.0) {
x /= 10.0
i++
}
while (x <= 0.1) {
x *= 10.0
i--
}
if (x >= 0.5) {
x = 0.5
}
else if (x >= 0.25) {
x = 0.25
}
else if (x >= 0.2) {
x = 0.2
}
else {
x = 0.1
}
return x*Math.pow(10, i)
}
function round_cross(min, max, nclass)
{
var width
if (max <= min || (width = round1((max-min)/nclass)) <= 0.0) {
return 1
}
return width
}
function search(x, n, y)
{
var i
for (i = 0; i < n; i++) {
if (x[i] == y) {
return i
}
}
return -1
}
function freq_sub(data, nc, width)
{
var min, max, i, k, nxr, xrin, freq, x, cum, low, i1, mark
mark = (round_flag == 1) ? "〜" : " "
xrin = new Array()
freq = new Array()
min = data[0]
max = min
for (i = 0; i < nc; i++) {
if (min > data[i]) min = data[i]
if (max < data[i]) max = data[i]
}
if (width == 0) width = round_cross(min, max, 8)
if ((max-min)/width > 11) {
width = round_cross(min, max, 6)
}
nxr = 0
for (i = 0; i < nc; i++) {
x = (round_flag == 1) ? Math.floor(data[i]/width)*width : data[i]
k = search(xrin, nxr, x)
if (k == -1) {
xrin[nxr] = x
freq[nxr++] = 1
}
else {
freq[k]++
}
}
exchange(freq, xrin, nxr)
printf("★ 度数分布表 ★\n")
sep(29)
printf("%12s%6s%10s\n", "カテゴリー", "度数", "相対度数")
sep(29)
low = xrin[0]
cum = 0
for (i = 0; i < nxr; i++) {
if (round_flag == 1) {
while (Math.abs(low-xrin[i]) > 1e-8) {
printf("%10.5g%2s%6i%8.1f\n", low, "〜", 0, 0)
low += width
}
}
cum += freq[i]
printf("%10.5g%2s%6i%8.1f\n", xrin[i], mark, freq[i], freq[i]/nc*100)
low = xrin[i]+width
}
sep(29)
printf("%10s%8i%8.1f\n", "合計", nc, 100)
}
function calc(data_string, width0)
{
var data, nc, x, i, j, width
if (width0 == "自動" || isNaN(width = parseFloat(width0)) || width <= 0) {
width = 0
}
if ((data = getdata(data_string, -1)) != false) {
nc = 0
x = new Array()
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++) {
x[nc++] = data[i][j]
}
}
if (nc < 2) {
printf("ケース数が1以下です\n")
}
else {
freq_sub(x, nc, width)
}
}
sep2(35)
printf("\n")
}
//-->
</script>
</head>
<body bgcolor="#ffffff">
<font size="+2"><b>度数分布表の作成</b></font> <a href="src/freq.html"><img src="png/src.png" width=35 height=11 alt="src" align=top></a> Last modified: Jun 01, 2006<hr noshade><p>
<font color="#ff0000" size="+2">以下のプログラムのサポートは終了しました。自己責任でお使い下さい。</font>
<form name=Result>
<script language="JavaScript">
<!--
//-->JavaScript がサポートされていないブラウザですか?
</script>
入力欄には,データを<a href="exa/kugirimoji.html">区切り文字</a>で区切って入力する(何行にわたてもかまわない)。<br>
入力欄の数値をそのまま集計するか,カテゴリー化してから集計するかを指示する。<br>
カテゴリー化の際に,必要ならば階級幅を指定することもできる。<br>
<img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="../lecture/Dosuu/interval.html">手法の解説</a>
<hr>
<input type="radio" name="round" onClick="round_flag=0"> 出現値そのまま <input type="radio" name="round" checked onClick="round_flag=1"> カテゴリー化する (階級幅<input name="width" value="自動">)<p>
<input type="button" name="calcurate" value="計算開始" onClick="calc(this.form.data.value, this.form.width.value)">
<input type="button" name="clear" value="入力欄クリア" onClick="this.form.data.value=''">
<input type="button" name="clear" value="出力欄クリア" onClick="this.form.result.value=''">
<p>
<table><tr>
<td>入力欄<br><textarea name="data" ROWS=20 COLS=25></textarea></td><td>出力欄<br><textarea name="result" ROWS=20 COLS=80></textarea></td>
</tr></table>
</form>
<p><hr noshade>
<img src="../gra/button3.png" width=9 height=9 alt="・"> <A HREF="javascript:history.go(-1)">直前のページへ戻る</A> <img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="../mail.html">E-mail to Shigenobu AOKI</a>
<p><IMG SRC="../gra/ume5.png" width=121 height=37 ALT="Made with Macintosh">
</body>
</html>
サブ io.js Last modified: Mar 25, 2004
直前のページへ戻る E-mail to Shigenobu AOKI