3

Rを使い始めたばかりなので、これは非常にばかげた質問かもしれません。次を使用してデータをインポートしようとしています:

emdata=read.csv(file="http://lottery.merseyworld.com/cgi-bin/lottery?days=19&Machine=Z&Ballset=0&order=1&show=1&year=0&display=CSV",header=TRUE)

私の問題は、csvファイルを単一の列に読み込むことです(ちなみに、宝くじのデータは、ダウンロードして公開されているためです-Rでできることとできないことを理解するための演習として使用します)、代わりにデータの列がいくつあっても、それをフォーマットすることです。これは些細なことですが、誰かが助けてくれませんか

4

2 に答える 2

4

うーん、それは csv 形式であると主張するページにとってはちょっと不快です。最初の 5 行をスキップできます。これにより、R はファイルの残り (ほとんど) を正しく読み取ることができます。

emdata=read.csv(file=...., header=TRUE, skip=5)

ソースを見て、スキップする行数を取得しました。途中と最後にある不要なものを削除してから、列をクリーンアップする必要があります (埋め込まれたテキストのために、それらはすべて要因になります)。

ページをハードディスクに保存し、編集して不要なビットをすべて削除してから、インポートする方がはるかに簡単です。

... 実際の質問に答えると、はい、Web から直接データをインポートできます。一般に、ファイルを読み取る場所はどこでも、完全修飾 URL に置き換えることができます。R は、Right Thing[tm] を行うのに十分スマートです。この特定の URL はたまたま特に厄介です。

于 2013-10-27T08:07:57.640 に答える
0

指定された URL からテキストを読み取り、不快な行を除外して、次のように結果を CSV として読み取ることができます。

lines <- readLines(url("http://lottery.merseyworld.com/cgi-bin/lottery?days=19&Machine=Z&Ballset=0&order=1&show=1&year=0&display=CSV"))
read.csv(text=lines[grep("([^,]*,){5,}", lines)])

上記の正規表現は、少なくとも 5 つのコンマを含むすべての行に一致します。

于 2013-10-27T16:42:23.477 に答える