HTTP アクセス ログに関するデータを読み込んでいます。IP アドレス、年、月、日、時間、および要求された URL の列を含むファイルがあります。私はこのようにファイルを読みました:
ipdata = scan(file="sample_r.log", what=list(ip="", year=0, month=0, day=0, hour=0, verb="", url=""))
これはうまくいくようです。R-Studio は、ipdata はリスト [7] であり、"names(ipdata)" が返されると言っています。
[1] "ip" "year" "month" "day" "hour" "verb" "url"
それはクールに思えます。特定の時間のデータをグラフ化するなど、何か楽しいことをしたかったのです。私はサブセットをやってみました:
s <- subset(ipdata, ipdata$hour==3)
このデータは、最初のデータ フレームとは著しく異なります。s は list[297275] であり、以下は正しく機能しません:
> table(ipdata$verb)
GET POST
2870709 1596748
> table(s$verb)
character(0)
私はこれを正しい方法で行っていますか?私が通常行うことは、データ フレームを table() でラップしてから、バープロットまたはドットプロットすることです。Rはこれを行う良い方法ですか?たとえば、「時間 3 のトップ URL をすべて表示して」と言いたいです。または「この IP アドレスは 1 時間に何回表示されましたか?」
更新read.table
代わりに使用scan
することで、データフレームを取得できたようです。どうやらスキャンはリストのリストか何かを返しますか? 私のような初心者には間違いなく混乱しますが、今は気分がいいです。