yuuka_maniaの日記: なぜ列を増やす? 7
日記 by
yuuka_mania
一般論として、データが増えていく場合、行を増やしていくものだと思うのだけど、なぜか、列を増やしていく例が身近で散見される。 DB の insert などを考えれば、行を増やしていくのが一般的だと思うのだが、なぜ、列を増やすような表を書くのか。使わないので、わからないけど、エクセルの影響だったりするのだろうか。もしくは、本質的には、行だろうが列だろうが関係ないので、私が合わせるべきなのか。
変更されると困るのに (スコア:0)
厚生労働省が毎日発表しているコロナ関連のオープンデータは、以前は縦軸が都道府県名、横軸が日付で列を増やすタイプだった。
いつ頃か忘れたけど横軸を都道府県、縦軸を日付にして行を増やすタイプになっている。
前日との差分を取るのにはこっちの方が圧倒的に便利。(過去日付のデータを修正することもある)
新方式は Excel でグラフ作成するのにいちいちXY軸変換が必要で面倒だけど。
カラムナフォーマット (スコア:0)
エクセルでのメリットはよくわかりませんが、データ解析などの用途では圧縮効率(同じ値が並ぶほうが圧縮しやすい)、参照性の違い(同じ系列のデータを取り出しやすい)から列指向のDBやファイル形式もよく見られますね。たとえば、ファイル形式ではApache Parquetなど。
Re: (スコア:0)
C言語の多次元配列とは違い、Excelでは最初に領域を確保する事はない
(値を入れると行、列、値といったものを含む構造体のリストに追加)ので
処理速度や圧縮効率はあまり関係ないような気もします。
Cでint a[4096][4096]なんていうコードを書くと行処理か列処理の差は
条件によっては半端ないものになりますが。
Re: (スコア:0)
なるほど。
人間としては縦にスクロールする方が楽なわけですが、コンピューターからすれば横に処理していく方がやりやすい。
そういう考え方もあるのですね。
参考になりました。
人間にとっての都合 (スコア:0)
Excelはデータを処理し、結果を可視化するためのツール。また、データと処理は分離されておらず、それらが二次元に配置される。したがって、処理しやすさよりも人間にとっての見やすさが重視される。
#Excelの「可視化」の部分を軽んじるべきではない。
グラフ (スコア:0)
一般的には二次元のグラフは横方向にデータが増えていく。
となると対応する表も横(列)方向に増やした方が対比しやすい。
次元 (スコア:0)
二次元以の軸で項目が増えていくデータを可視化するには行と列に軸を振らないと全部頭の中で並べ替える事になる。
だからExcelで縦横に伸びる表が作られるのは必然。
増加する軸が単一の場合に横に伸びるのは、
縦横どちらにも伸ばして良いと思っていてそこに区別は無いから。
その上で横に伸びがちなのは、
伸びていく軸のインデックスは日付や回数などの数値類で有ることが多く、
伸びない軸は名前や型番など比較的長い固有の名前で有ることが多めだからかも。
縦に伸びる軸のインデックスは横書きでコンパクトに表示できるが、
横に伸びる軸のインデックスの表示幅が値よりも長い場合は、
縦書き・横倒し・斜め倒し・省略・別記載などの措置を取らないと値の配置がスカスカになる。
また、日付の場合はカレンダーに寄せる効果もある。