Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 时间间隔内的数据分析_Excel_Matlab_Datetime_Group By_Time Series - Fatal编程技术网

Excel 时间间隔内的数据分析

Excel 时间间隔内的数据分析,excel,matlab,datetime,group-by,time-series,Excel,Matlab,Datetime,Group By,Time Series,我正在研究我最近收集的大量数据。我想知道一天中什么时候发生了用户活动。以下是少量的数据集快照: 我应用以下代码来了解登录活动的时间间隔 =SUMPRODUCT(--(HOUR(I2:I185143)>=K4*24),--(HOUR(I2:I185143)<L4*24)) =SUMPRODUCT(-HOUR(I2:I185143)>=K4*24),-(HOUR(I2:I185143)如果使用数组函数Frequency()这在excel中相对简单 应采取的一些步骤: 我假设您希望按每

我正在研究我最近收集的大量数据。我想知道一天中什么时候发生了用户活动。以下是少量的数据集快照:

我应用以下代码来了解登录活动的时间间隔

=SUMPRODUCT(--(HOUR(I2:I185143)>=K4*24),--(HOUR(I2:I185143)<L4*24))

=SUMPRODUCT(-HOUR(I2:I185143)>=K4*24),-(HOUR(I2:I185143)如果使用数组函数Frequency()这在excel中相对简单

应采取的一些步骤:

我假设您希望按每天的时间进行排序

因此,时间列是数据数组,频率的第一个参数(查看excel帮助)

对于bin数据,您必须获得一个开头带有开始时间的 添加以下垃圾箱,每个垃圾箱少于10分钟(=1/24/6),使其成为一天中的第六个小时

一整天总共有144个垃圾箱


然后选择bin旁边的列段,并使用=Frequency(data\u array,bin\u array)对其进行编辑,不要忘记使用

输入它。好的,我在下面的屏幕截图中得到了答案


这里有一个可能的MATLAB解决方案

1) 假数据 为了测试我的代码,我首先必须生成一些与实际数据相似的假数据。当处理真实数据时,您可以跳过这一部分

len = 50;

%# random dates inbetween these two
dt_start = datenum('2013-06-22 19:17:00');
dt_end = datenum('2013-06-22 19:23:00');
dt = sort(dt_start + rand(len,1)*(dt_end-dt_start));

%# create the columns
ID = repmat(int32(104885), [len 1]);
Date = cellstr(datestr(dt, 'mm/dd/yyyy'));
Time = cellstr(datestr(dt, 'HH:MM:SS'));
EE = rand(len,1);

%# combine columns into a cell array
C = [num2cell(ID), Date, Time, num2cell(EE)];

%# create a "table" for convenience, and export to CSV file
t = cell2table(C, 'VariableNames',{'ID', 'Date', 'Time', 'EE'})
writetable(t, 'data.csv')

%# cleanup
clear len dt_start dt_end dt ID Date Time EE C t
以下是我为本例生成的数据摘录:

t = 
      ID          Date           Time          EE    
    ______    ____________    __________    _________
    104885    '06/22/2013'    '19:17:19'      0.95808
    104885    '06/22/2013'    '19:17:22'      0.72305
    104885    '06/22/2013'    '19:17:31'      0.86481
    104885    '06/22/2013'    '19:17:33'      0.52325
    .
    .
    104885    '06/22/2013'    '19:22:37'       0.5167
    104885    '06/22/2013'    '19:22:39'      0.53815
    104885    '06/22/2013'    '19:22:41'      0.27151
    104885    '06/22/2013'    '19:22:54'      0.37826
    104885    '06/22/2013'    '19:22:59'      0.51215
2) 时间间隔内的频率计数 我从CSV文件中读取数据,然后应用一个与链接到的文件中使用的过程类似的过程。在这种情况下,时间间隔长度是可以指定的参数(10分钟间隔、1小时等)

结果是:

freq = 
    '22-Jun-2013 19:16:00'    [ 7]
    '22-Jun-2013 19:18:00'    [21]
    '22-Jun-2013 19:20:00'    [12]
    '22-Jun-2013 19:22:00'    [10]

我们在第一个时间间隔(19:16到19:18)发生了7个事件,在第二个时间间隔发生了21个事件,依此类推。您可以轻松调整代码以更改间隔长度。

这里是另一个相关问题:
freq = 
    '22-Jun-2013 19:16:00'    [ 7]
    '22-Jun-2013 19:18:00'    [21]
    '22-Jun-2013 19:20:00'    [12]
    '22-Jun-2013 19:22:00'    [10]