[過去ログ]
プログラミングのお題スレ Part13 (1002レス)
プログラミングのお題スレ Part13 http://mevius.5ch.net/test/read.cgi/tech/1549160513/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
494: デフォルトの名無しさん [sage] 2019/03/04(月) 18:59:01 ID:R4eMfGlu お題 全角空白区切のCSV カレントディレクトリにあるCSVファイルを読み込み、指定されたカラム名のデータの合計を求める。 1レコード目にはカラム名がある。 区切り記号は全角空白とする。 データの数字は全てASCII数字だとする。 CSVファイル内のデータ例 カラム1 カラム2 カラム3 カラム4 1,0 2.0 3.0 4.0 2.1 3.1 4.1 5.1 ------データ例終わり 出題 カラム3 の合計を求めよ。 解答例 カラム3 = 7.1 http://mevius.5ch.net/test/read.cgi/tech/1549160513/494
496: デフォルトの名無しさん [sage] 2019/03/04(月) 19:03:32 ID:rdjSvZ2C >>494 間違い データに 1,0 という間違いがあるけど問題ないだろ。 ついでに、この状態でカラム1の様にデータフォーマットが違う場合には正しくデータエラーを報告せよ。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/496
499: デフォルトの名無しさん [] 2019/03/04(月) 19:12:28 ID:TpCWsYE8 >>494 awk。-F オプションで指定しているのが全角スペースね。OSやシェルの違いによってはシングルクオーテーションではなくダブルクォーテーションにする必要がある。入力はファイル名指定するか標準入力から読ませる。 awk -F' ' 'BEGIN{getline}{n+=$3}END{print n}' http://mevius.5ch.net/test/read.cgi/tech/1549160513/499
507: デフォルトの名無しさん [sage] 2019/03/05(火) 03:28:01 ID:CZi591h7 >>494 Ruby で require 'csv' # 全角空白区切りで、ヘッダー有り options = { :headers => true, :col_sep => " " } # CSV ファイルを、1行ずつ処理する puts CSV.foreach( "input.csv", options ) .map{ |row| row[ 2 ].to_f }.inject( :+ ) http://mevius.5ch.net/test/read.cgi/tech/1549160513/507
543: デフォルトの名無しさん [] 2019/03/07(木) 03:21:20 ID:QS9GxyX4 >>494 Kotlin https://paiza.io/projects/w5ywqyfGfQpwllH68rmt5A 入力はカラム名の行が最初にあり、次の行からはデータが続き「# カラム名」の行で終わり、 そこで指定したカラム名の列の合計値が出力される。 エラーはデータが数値として解釈できない文字列、項目数がカラム名の数と一致しない行、 同一カラム名があった場合に出る。一度エラーになると # の行まで読み飛ばされる。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/543
737: デフォルトの名無しさん [sage] 2019/03/17(日) 22:48:25 ID:t+AGMGYK >>494 (CSVはコンマ区切りの値だよ) http://mevius.5ch.net/test/read.cgi/tech/1549160513/737
741: デフォルトの名無しさん [sage] 2019/03/18(月) 00:38:16 ID:9+FFV4Nx >>494 >>496 Perl5 use feature say; @data = <DATA>; chomp @data; @tags = split' ', shift @data; %idx = map{$_ => $n++} @tags; @sum = 0 x $n; for (@data) { @fs = split' '; for (0..$n-1) { $v = $fs[$_]; if ($v =~ /^(\d+\.\d*|\d*\.\d+|\d+)$/) { $sum[$_] += $v; } else { warn "変なデータが紛れ込んでいます_ノ乙(、ン、)_`$v'\n"; } } } for (@tags) { say "$_ の合計 = ", $sum[$idx{$_}]; } __DATA__ カラム1 カラム2 カラム3 カラム4 1,0 2.0 3.0 4.0 2.1 3.1 4.1 5.1 ~ $ perl 13_494.pl 変なデータが紛れ込んでいます_ノ乙(、ン、)_`1,0' カラム1 の合計 = 2.1 カラム2 の合計 = 5.1 カラム3 の合計 = 7.1 カラム4 の合計 = 9.1 http://mevius.5ch.net/test/read.cgi/tech/1549160513/741
745: デフォルトの名無しさん [sage] 2019/03/21(木) 11:30:55 ID:4Lv8Ku6J >>494 Squeak Smalltalk。コンマを分割と見なしそれぞれについての和を出力させてみた | fn | fn := [:columnName | FileStream oldFileNamed: 'data.txt' do: [:file | | index sum | index := (file nextLine subStrings: ' ') indexOf: columnName. sum := 0. [file atEnd] whileFalse: [ | next | next := ((file nextLine subStrings: ' ') at: index) subStrings: ','. sum := sum + (next size = 1 ifTrue: [next anyOne] ifFalse: [next])]. sum ] ]. fn value: 'カラム3'. "=> 7.1 " fn value: 'カラム1'. "=> #(3.1 2.1) " http://mevius.5ch.net/test/read.cgi/tech/1549160513/745
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.037s