ファイルが pgn の bzip として保存されているhttps://database.lichess.org/からチェス ゲーム ファイルを読み込もうとしています。pgn ファイルのサンプル形式は次のようになります。
[Event "4th Bayern-chI Bank Hofmann"]
[Site "?"]
[Date "2000.10.29"]
[Round "?"]
[White "Carlsen, Magnus"]
[Black "Cordts, Ingo"]
[ECO "A56"]
[WhiteElo "0"]
[BlackElo "2222"]
[Result "0-1"]
1. d4 Nf6 2. c4 c5 3. Nf3 cxd4 4. Nxd4 e5 5. Nb5 d5 6. cxd5 Bc5 7. N5c3 O-O 8. e3 e4 9. h3 Re8 10. g4 Re5 11. Bc4 Nbd7 12. Qb3 Ne8 13. Nd2 Nd6 14. Be2 Qh4 15. Nc4 Nxc4 16. Qxc4 b5 17. Qxb5 Rb8 18. Qa4 Nf6 19. Qc6 Nd7 20. d6 Re6 21. Nxe4 Bb7 22. Qxd7 Bxe4 23. Rh2 Bxd6 24. Bc4 Rd8 25. Qxa7 Bxh2 26. Bxe6 fxe6 27. Qa6 Bf3 28. Bd2 Qxh3 29. Qxe6+ Kh8 30. Qe7 Bc7
read.csv
bz2 ファイルから直接ファイルを読み取ることができます。
read.csv(file.pgn.bg2, nrows = 100000, stringsAsFactors = F, header = F)
しかし問題は、read.csv が非常に遅く、ファイルが何百万行もあるということです。fread
それで、.bz2ファイルを読み取れるようになったので、使用すると思いました。問題は、次のことを試してみると
fread(file.pgn.bg2, nrows = 1000)
このコマンドは何の結果もなく何年もの間実行されます。私のセッション情報():
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
通常の .pgn ファイルで試してみましたが、fread
正しくはありません。列を分割してゲーム表記を破棄するため、上記の例では次のようになります。
V1 V2
[Event "4th Bayern-chI Bank Hofmann"]
[Site "?"]
[Date "2000.10.29"]
[Round "?"]
[White "Carlsen, Magnus"]
[Black "Cordts, Ingo"]
[ECO "A56"]
[WhiteElo "0"]
[BlackElo "2222"]
[Result "0-1"]
しかし、少なくともそれはそれを読んでいます。どうすればよいか、誰かアドバイスはありますか?fread
.pgn.bz2 ファイルから正しく読み取るにはどうすればよいですか?