我对 R 比较陌生,这是我第一次尝试使用它来实际分析一些数据。问题如下:我有一个 CSV 文件,其中包含为给定系统提供的请求数量的日志,格式如下:
# Unix timestamp, number of requests
1354810257,241624
1354810258,244759
1354810259,245307
1354810260,248961
目前该文件包含与一周相关的信息。现在我需要获得一个图表,显示系统每秒、每小时和每天能够维持多少请求。
我使用 Python 和 matplotlib 解决了它。代码与此类似:
import csv
from pylab import *
from itertools import groupby
def by_hour(value):
return value[0] // 3600
def plot_data_for(data, map_, reduce_):
keys = []
values = []
for k,v in groupby(data, key=map_):
keys.append(k)
values.append(reduce_(v))
return (keys, values)
times = []
requests = []
reader = csv.reader(open("results.csv"))
for row in reader:
times.append(int(row[0]))
requests.append(int(row[1]))
increments = map(lambda x: x[1] - x[0], zip(requests, requests[1:] + [requests[-1]]))
plot(*plot_data_for(zip(times, increments), by_hour, lambda values: sum(map(lambda x: x[1], values))))