dポイントプレゼントキャンペーン実施中!

アウトは0、ヒットは1、二塁打は2、三塁打は3、
ホームランは4、その他は5、
として結果が時系列に並べられた以下のようなテキストファイルがあります。一打席ごとに改行がはいっています。
(例)
1
1
5
0
0
1
0
4

野球のある打者が連続ヒットを打った直後の打席の打率を
したべたいのですがよい方法は無いでしょうか。
テキストエディタや grep ソフト置換ソフト(speeeeeed)などを使って調べる方法をおしえてください。
データが複数行にまたがっているため、正規表現でうまく検索できません。

A 回答 (1件)

以下のような感じ?


$dat = <<DAT;
1
1
0
5
0
0
1
2
3
0
4
DAT
my $ave=0;
my (@result,@result_hit);

@result = $dat =~ /(?<=[1-4]\n[1-4]\n)(.)/g;# 連続安打後の打席を抽出
@result_hit = grep{/[1-4]/}@result;# 抽出した中から更に安打を抽出
$avg = @result_hit / @result if(scalar @result); # 打率を算出
print '打率:',$avg,'(',scalar @result_hit,'/', scalar @result,')';
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!