5000*500の行列データを扱いたいのですが,よい方法を教えてください。具体的に困っているのは,Access2000のクエリでクロス集計をしたいのですが,列の数が多すぎてできません。Excelでは最大の列数が256列なので,ピポットテーブル集計もできません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/06/24 00:50:42
  • 終了:--

回答(6件)

id:haru No.1

haru回答回数38ベストアンサー獲得回数02003/06/24 09:06:41

ポイント10pt

まともな回答が出来ないのでポイントは遠慮します。

もしそれが自然を相手にしたデータなら行列内にびっしりデータがあるのではなく、対角線を中心に分布しているはずです。

そんな行列をスパースマトリックス(疎行列)と言いますが、そのような場合はデータが存在するだけの配列を用意すればいいので使用するメモリを節約できます。

こんな回答で助けになりますでしょうか?

id:mikam

たしかに疎行列なのですが…。具体的な方法をお願いします。

2003/06/24 14:46:47
id:kaerukerojet No.2

kaerukerojet回答回数27ベストアンサー獲得回数02003/06/24 10:20:51

ポイント15pt

http://www.postgresql.jp/

NPO法人 日本PostgreSQLユーザ会

DBならPostgreSQLを使ってはどうでしょ?excelがいいのでしょうか。

id:mikam

別にExcelでなくてもいいのですが…。別のアプリを使うしかないのでしょうか?

2003/06/24 14:49:01
id:khayashi No.3

khayashi回答回数12ベストアンサー獲得回数02003/06/24 10:55:51

ポイント15pt

http://www.r-project.org/

The R Project for Statistical Computing

rという無料で使える統計パッケージがお薦めです。

> bigmat<-matrix(1:2500000,500,5000)

> bigmat2<-matrix(1:2500000,5000,500)

> rcan<-bigmat%*%bigmat2

のように簡単に大きな行列の計算もできます。日本語での説明は以下をご覧ください。

id:mikam

Rは持っています。少し調べてみます。

2003/06/24 14:49:58
id:pahoo No.4

pahoo回答回数5960ベストアンサー獲得回数6332003/06/24 13:27:37

ポイント15pt

そのくらいの巨大データになると、本格的な統計解析ソフトを導入すべきだと思います。たとえばSPSSなどはいかがでしょうか。

id:mikam

実はSPSSも持っています。でも,恥ずかしながら方法がよく分からないのです。

2003/06/24 14:50:59
id:salvatore No.5

salvatore回答回数6ベストアンサー獲得回数02003/06/24 14:46:13

ポイント25pt

URLはダミーです。

テーブルを二つに分けて結合して集計してはいかがでしょう?

手元にAccess2000が無いので確認が取れてませんが、SQLServer2000では問題なさそうです。

tbl1とtbl2を作成して、tbl1にはcol1-250、tbl2にはcol251-500というように250カラム

づつあるテーブルを作成します。

select tbl1.*,tbl2.* from tbl1, tbl2

where ...

キーとなるカラムように双方のテーブルに1つキーをつければ大丈夫かと思います。

id:mikam

少し調べてみます。

2003/06/24 14:51:50
id:nektixe No.6

nektixe回答回数19ベストアンサー獲得回数02003/06/30 11:06:16

ポイント10pt

こちらのページで尋ねてみてはどうでしょうか?

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません