- 締切済み
perlで一定の範囲ごとにカウントさせる方法について教えてください。
perlで一定の範囲ごとにカウントさせる方法について教えてください。 例えば、data.txtに、-10≦n≦10の範囲で様々な数が入ったファイルがあるとして、 -10.0 ≦ x < -9.9 -9.9 ≦ x < -9.8 .... 9.8 ≦ x < 9.9 9.9 ≦ x ≦ 10.0 (←最後は≦のほうがいいですが、<でもOK) と0.1ごとに区切って、 その範囲に入る数をカウントしたいとき、 ifや+=を使って範囲を指定して、カウントアップさせる方法もありますが、 指定したい範囲の数が多いと、ifばかりをプログラム内に羅列するのは面倒です。 できれば以下のような結果が表示されるとうれしいのですが… 中間値 カウント数 -9.95 3 -9.85 6 ... すっきりした書き方はありませんか?よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- SaLeeFA
- ベストアンサー率66% (6/9)
- shiren2
- ベストアンサー率47% (139/295)
- kmee
- ベストアンサー率55% (1857/3366)
- tsuduki123
- ベストアンサー率32% (21/65)
- Tacosan
- ベストアンサー率23% (3656/15482)
関連するQ&A
- プログラム/perl カウントについて
プログラム初心者です. 現在,プログラムの書き換えを行っているところです. (言語はperlです 以下のプログラムのnextの前に, 「$bbをカウントし, $bbが2回出てきたらlast」 というプログラムを書きたいと思っています. ------------------------ if($honbun =~ /$boundary/) { $bb++; if($bb >=2) { last; } next; } ---------------- カウントする変数を使うべきだと思うのですが,どのようにすればいいでしょうか; 初心者質問で申し訳ないです.
- 締切済み
- Perl
- エクセルである指定した範囲のカウント
エクセルで通常カウントは、以下のように、B2:B5と範囲指定しますが、 COUNTIF(B2:B5,">55") ある一定のセルをカウントしようとしたのですが、うまくいきません・・・。 たとえば、E8,G8I8をカウントの対象としたいとき、書式はどのようにすればいいでしょうか? やりたいことは、上記のように、そろってない範囲のセルで、17以上はいくつか?など、ある数値以上になっているセルの数をカウントすることです。
- ベストアンサー
- オフィス系ソフト
- Perl。文字出現回数を重複しないでカウントしたい。
perl初心者です。どうぞ助けて下さい。 以下のようにデータがならんでいる時、 pphhhppphhhppppppphhppppppppppppppppppphhh pが連続した文字の連続数は 2、3、7、19 となります。 今、知りたいのはこのようなpの連続数の出現回数です。つまり、たとえばpが19回連続してあるものは何回でてきたか、が知りたいのです。 上の例だと1回が正解となります。 ところが、スクリプトを書くとき、 たとえば以下のようにしたとき、 pが19回なら重複カウントはなくても、 pを2でカウントしたら、 本当に出てきて欲しいこたえは一回なのに、 P=3、7、19のどれにも該当してしまいます。 #!/usr/bin/perl ; open(IN, "text1.txt") or die ; open(OUT, ">text1out.txt"); while(<IN>) { chomp ; if (/(\S+)/) { $name = $1 ; if ($name =~ /^ppppppppppppppppppp/) { {$count++;} ; } print OUT "$count\n" ; } } close (IN) ; close (OUT) ; 正規表現の中を工夫すればいいのだと思いますが、 大変困っております。宜しくお願いします。
- ベストアンサー
- Perl
- perl ファイルのデータを編集したい
初めまして、perl をやり初めたばかりです。作業は Linux 上で行ってます。 あるテキストファイル data.txt があります。 data.txt の中は、以下のようになっているとします。 100 200 300 400 500 600 これを読み込んで、例えば、 1 2 3 4 5 6 以上の様に各数字を百分の一にして出力したいと思ってます。 一応、色々と調べながらプログラムを書いてはみましたが 思う様に出力されません。以下そのプログラム。 #!/usr/bin/perl open(IN, "data.txt") or die ; @x = <IN>; close (IN); $ref_x = \@x; $n_data = @x; for ($i = 0; $i< $n_data; ++$i) { $$ref_x[$i] /= 100 ; print $x[$i], " "; } print"\n"; どなたか、perl にお詳しい方教えていただけないでしょうか? 宜しくお願い申し上げます。
- 締切済み
- Perl
- Excelの範囲内カウント方法について
Excelの指定した範囲内のセルに入力されている国語、数学、社会の個数をカウントしたい場合です。カウントイフの数式+でつなぐ方法しかないんですか?
- 締切済み
- Excel(エクセル)
- Perlのプログラミングについて
Perlのプログラミングでつまづきました。 # ファイルから指定文字列を含む行を収集する # 入力ファイルのオープンと読み込み print( "入力ファイル名?" ); $n = <STDIN>; chomp( $n ); open( FIN, "<$n" ) or die "入力ファイルオープンエラー: $!\n"; $n = @a = <FIN>; close( FIN ); print( "$n 行読み込みました\n" ); # 行の収集 print( "検索文字列?" ); $x = <STDIN>; chomp( $x ); $ptn = $x; #指定の文字列 $x = @b = grep( /$ptn/, @a ); print( "$x 行見つかりました\n" ); # 出力ファイルのオープンと書き出し print( "出力ファイル名?" ); $y = <STDIN>; chomp( $y ); open( FOUT, ">$y" ) or die "出力ファイルオープンエラー: $!\n"; print FOUT ( $ptn, "\n" ); print FOUT ( $x, "\n" ); print FOUT ( @b ); close( FOUT ); というプログラムで実行すると C:\My Perl\pl>perl プログラムの実行.pl 入力ファイル名?sample1.txt 168 行読み込みました 検索文字列?k 45 行見つかりました 出力ファイル名?out3-24.txt 続行するには何かキーを押してください . . . となり出力ファイルの中身が表示されません。 どこを間違えているのかご指摘いただけないでしょうか?
- 締切済み
- Perl
- カウントの方法を教えて下さい。
カウントの方法を教えて下さい。 Excel2003を使っています。A1~E30のセルに11~51、12~52、13~53・・・の数字がバラバラに入力されています。 この範囲の中から頭の数字が1、2、3、4、5が付く数をカウントしたいのですが、宜しくお願いします。
- ベストアンサー
- その他(業務ソフトウェア)
- terapadを使って、perlについての問題です。
terapadを使って、perlについての問題です。 第一問はある英語の文書ファイルから、その文書の段落の数、文の数、単語の数をカウントするプログラム。段落の区きりが改行で、文の区きりは、「 .」(半角スペース2個に.1個)で、文字の区きりは、「 」(半角スペース)あるとする。 第二問はある単語ファイル(例えばtest.txt)に乗っている単語リスト(1行1単語)の単語の意味を調査し(辞書は先に用意したファイルで調査するdictionary.txt)、その結果をファイルに保存するプログラムを作成するプログラム。(ファイル名をout.txtする)そのプログラムを提出すること。 誰か教えてください、プログラミングの初心者なので…全く思いつかない。><
- 締切済み
- Perl
- perl文末文字列カウントプログラム
perl の文字列カウント こんにちは。初質問になります。perのlプログラミングについての質問です。 ある文章の「文末」の文字列をカウントし、出力するプログラムをつくりたいと思っています。 以下の文字列カウントプログラムを元に作りたいのですが、正規表現の文末指定のつけどころが恥ずかしながらわかりません。 <テキストデータ例> やまだくんはみかんを食べています!!たかしくんはりんごを食べています!! ひろしくんは好きなみかんを食べています!! ??よしこさんは嫌いなりんごを食べていますか?? かなえさんはいつもぶどうを食べています(^-^) ひろしくんはみかんが好きです(^-^)しかし、ゆうじくんはみかんは好きではありません(^-^) ひろみさんはみかんとぶどうは嫌いです!!しかし、りんごは好きです。 たとえば上のテキストデータを読み込み 文末のビックリマーク、クエスチョンマークの文字列を検出し 個数をカウントし出力するするようなプログラムです。 <出力結果> (^-^) 2 !! 2 ?? 1 となるようにしたいです。 以下のプログラムだと文末に限らずリストにあてはまる全ての記号がカウントされてしまいます。 @arr = qw('(^-^)','!!','??' ); $fname = "input.txt"; open(IN,"$fname") || &error("Can't open $fname"); read(IN,$buff,-s IN); close (IN); foreach (@arr){ $cnt = scalar( () = $buff =~ /$_/g ); print "$_ $cnt\n"; }
- 締切済み
- Perl