著者:飯尾淳
コロナ禍の影響を受けて、2020年度は大学の講義の多くがオンライン講義になりました。対面での講義に比べると、情報伝達の面でオンライン講義はかなり不利です。また、受講状況がどうだったかについても気になります。最終回となる今回は、久しぶりに棒グラフが登場します。棒グラフで、講義コンテンツがいつ視聴されたのかを可視化します。
シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。
図4 未読率を計算するRubyスクリプト「midoku.rb」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/usr/bin/env ruby # # for n in `seq -w 1 13`;do # ./midoku.rb Rawdata/rawdata_$n.csv $n; # done m1 = m2 = m3 = 0 File.open(ARGV[0], "r") {|f| f.each_line {|line| a = line.chomp.split(',') m1 += a.count('未読') m2 += a.count('閲覧済') m3 += a.count('更新後未読') } } printf "%s,%d,%d,%d,%04.1f\n", ARGV[1],m1,m2,m3,m1.to_f*100/(m1+m2+m3).to_f |
図7 視聴率の総計を計算するRubyスクリプト「hours.rb」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/env ruby # # cat Rawdata/* > all.csv # ./hours.rb all.csv | sort | uniq -c | \ # sort -n -k 2 | awk '{printf("%d,%d\n", $2,$1)}' > hours.csv number = "(\\d+)" m1 = m2 = m3 = 0 File.open(ARGV[0], "r") {|f| f.each_line {|line| a = line.chomp.split(',') a.map!{|x| /#{number}:#{number}:#{number}/.match(x).to_a[1] } a -= [nil] a.map{|x| print x, "\n" } } } |