No.1ベストアンサー
- 回答日時:
それほど プログラムができる人間ではないですが。
。。このような ロジックではいかがでしょうか?
連想配列hashを 2種類活用し、
1つ目のhash
カラム1の種類ごとに カラム2を足していく。
(hash{カラム1}に どんどん カラム1が同じもののカラム2の値を足していく。)
hash{カラム1}=hash{カラム1}+カラム2
2つ目のhash2
カラム1の種類ごとに、各カラム1のおなじものが 何個あるか カウントしていく。
(hash2{カラム1}に カラム1が同じものをカウントしていく。)
hash2{カラム1}=hash2{カラム1}+1
平均値は
hash{カラム1}/hash2{カラム1}で 求まると思います。
この回答へのお礼
お礼日時:2011/09/14 02:12
早速の回答ありがとうございます。
hashにもあまり慣れていないプログラミング初心者でなかなか理解するのが難しい状態です。もしよろしければもう少し具体的な構成を教えていただけないでしょうか?
No.2
- 回答日時:
あまりプログラムが得意でないので、効率よいきれいなプログラムでないかもしれませんが、
かきのようなもので どうでしょうか?
open(IN,ファイル1);
while(<IN>){
$line = $_;
chomp $line;
@array = split(/\t/,$line);
$id1 = $array[0];
$score = $array[1];
if(exists $hash{$id1}){
$hash{$id1}=$hash{$id1}+$score;
$hash2{$id1}=$hash2{$id1}+1;
} else {
$hash{$id1}=$score;
$hash2{$id1}=1;
}
}
close(IN);
foreach(sort keys %hash)
{
my $key=$_;
my $value=$hash{$_};
my $value2=int($value/$hash2{$_}); 商だけを採用するのであれば intを利用
print $key.' -> '.$value2."\n"
}
とすると
1 -> XXX とかでてくるのではないでしょうか?
この回答へのお礼
お礼日時:2011/09/14 15:34
詳細にプログラムまで書いていただきありがとうございます。
おかげさまでデータ処理を行うことができました。
ありがとうございました!
No.3
- 回答日時:
インデントの都合上、全角スペース使ってるので置換して下さい。
use strict;
use warnings;
# データのぶちこみ場所(2次ハッシュ)
my %data;
# CSVデータはスクリプト中に書けるので、今回はそれを使います
while (<DATA>) {
chomp $_;
my @cols = split(',', $_);
# 各カラムごとの合計(sum)、個数(cnt)
$data{$cols[0]}{sum} += $cols[1];
$data{$cols[0]}{cnt}++;
}
foreach my $col (sort keys %data) {
# 適当に出力
print "Colmns $col : Avg = " . $data{$col}{sum} / $data{$col}{cnt} . "\n";
}
__DATA__
1,123.93
1,322.32
1,232.21
1,124.32
1,234.12
2,123.43
2,12.34
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- 統計学 t値の計算方法 1 2022/11/29 18:37
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- 統計学 確率統計の問題です。 3 2022/04/07 04:39
- PHP Postgresの特定のカラムからスペースを取る方法 1 2023/02/22 13:18
- 物理学 電気磁気測定の整流形電圧計の問題についてです。 写真の問題についてで、正弦波での実効値Ve、最大値V 2 2023/02/16 11:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで特定文字列から特定文字...
-
perlプログラミング 空白行削除
-
openした後、closeしないでプロ...
-
アルファベットに付いて質問し...
-
Perlのエラーについてご教授く...
-
perlをバージョンアップしたら...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
-
perlについての質問
-
perlのプログラミング 部分入れ...
-
ペプシコーラとコカ・コーラとD...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について。
-
高速に文字列の比較
-
二つの変数が同じ物を指すよう...
-
@{$protocol_name}
-
CGFloatとは?
-
perlでの平均計算について
-
HTML::Templateのループと配列...
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
VBのReturnの使い方
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
VBAのautofilter、criteriaの配...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
おすすめ情報