HTTPアクセスログに関するデータを読み込んでいます。私はIPアドレス、年、月、日、時間と要求されたURLの列を持つファイルを持っています。私はこのようにファイルを読む:スキャンでデータを読み込んだ後にRでデータフレームをサブセット化する
ipdata = scan(file="sample_r.log", what=list(ip="", year=0, month=0, day=0, hour=0, verb="", url=""))
これは動作するようです。 R-Studioは、[7] IPDATAがリストであると言うと、 "名前(IPDATA)" だから、クールなようだ
[1] "ip" "year" "month" "day" "hour" "verb" "url"
を返します。特定の時間のグラフを作成するなど、楽しいことをしたいと思っていました。サブセットを作成しようとしました:
s <- subset(ipdata, ipdata$hour==3)
このデータは最初のデータフレームとは大きく異なります。 sが[297275]リストで、以下の権利は動作しません:
> table(ipdata$verb)
GET POST
2870709 1596748
> table(s$verb)
character(0)
私はこれについて、正しい道を進んでいますか?私が一般的にしているのは、データフレームをテーブル()にラップして、バープロットまたはドットプロットすることです。 Rはこれを行う良い方法ですか?たとえば、「トップ3のすべてのURLを時間3で表示」としたいとします。または、「このIPアドレスは1時間に何回表示されましたか?」
更新scan
の代わりにread.table
を使用したようです。データフレームを取得できました。明らかにscanはリストのリストを返しますか?間違いなく自分自身のようなn00bに混乱するが、私は今それについて良い気分だ。
Ah! 'read.table'は基本的に" as.data.frame "を行いますか? – Dave
まあ、 'read.table'は返されたオブジェクトのクラスとして" data.frame "を割り当てます。それは、クラスを割り当てる前に、名前と長さとクラスをチェックします。あなたのコンソールに 'read.table'と打つだけです。一貫性の執行の量を見ることに加えて、なぜそれが時には遅いのかについての感謝を得るでしょう。 –
素晴らしいです、もう一度ありがとうございます。私はまだRとR Studioに慣れていて、ちょうど今朝はヘルプ機能について学んだ:) – Dave