我有一个不规则的时间序列事件(帖子)使用xts,我想计算在滚动的每周窗口(或每两周,或3天等)发生的事件的数量.数据如下所示:
postid
2010-08-04 22:28:07 867
2010-08-04 23:31:12 891
2010-08-04 23:58:05 901
2010-08-05 08:35:50 991
2010-08-05 13:28:02 1085
2010-08-05 14:14:47 1114
2010-08-05 14:21:46 1117
2010-08-05 15:46:24 1151
2010-08-05 16:25:29 1174
2010-08-05 23:19:29 1268
2010-08-06 12:15:42 1384
2010-08-06 15:22:06 1403
2010-08-07 10:25:49 1550
2010-08-07 18:58:16 1596
2010-08-07 21:15:44 1608
Run Code Online (Sandbox Code Playgroud)
应该产生类似的东西
nposts
2010-08-05 00:00:00 10
2010-08-06 00:00:00 9
2010-08-07 00:00:00 5
Run Code Online (Sandbox Code Playgroud)
为期2天的窗口.我已研究过rollapply,apply.rolling从PerformanceAnalytics等,他们都承担一定的时间序列数据.我尝试将所有时间都改变到帖子发生的那一天,并使用类似于ddply每天分组的东西,这让我很接近.但是,用户可能不会每天发布,因此时间序列仍然是不规则的.我可以用0填补空白,但这可能会使我的数据大量膨胀,而且已经非常大了.
我该怎么办?
我有两张桌子:
帖子:
id | ... other stuff ... | tags
----+---------------------+--------------
1 | ... | <foo><bar>
2 | ... | <foo><baz><blah>
3 | ... | <bar><blah><goo>
Run Code Online (Sandbox Code Playgroud)
和标签:
tag
--------------
<foo>
<bar>
<baz>
<blah>
<goo>
Run Code Online (Sandbox Code Playgroud)
posts.tags和tags.tag都是文本类型.我想要的是从tags.tag到帖子中的行的关系,这样查询<foo>会给我对应帖子1和2的行,查询<blah>给我2和3,<bar>给我1和3,等等.
我看过外键,但我不确定这是我想要的.(老实说,我不确定它的作用).据我所知,外键必须等于表的主键/唯一列.但我想要的是所有行posts.tags ~ '.*<foo>.*',等等.我也希望能够,例如,获得所有以b开头的标签,例如:
CREATE VIEW startswithB AS
SELECT tag
FROM tags
WHERE tag ~ '<b.*>';
SELECT DISTINCT * FROM posts, startswithB WHERE posts.tags ~ ('.*' || startswithB || '.*');
Run Code Online (Sandbox Code Playgroud)
我如何获得我正在寻找的关系?可能吗?
编辑:
好的,我做了什么:
创建post_tags:
SELECT posts.id, tags.tag
INTO …Run Code Online (Sandbox Code Playgroud) 我正在将最初用VB.NET编写的程序移植到Java.我正在读取一个以小端序存储32位浮点数的文件.
原始程序执行此操作:
Dim br As BinaryReader = ...
Dim f_vb As Single = br.ReadSingle
Run Code Online (Sandbox Code Playgroud)
Java是大端,所以我在转换为float之前反转字节.
RandomAccessFile raf = // ...
int i = raf.readInt();
int bigEndian = Integer.reverseBytes(i);
float f_java = Float.intBitsToFloat(bigEndian);
Run Code Online (Sandbox Code Playgroud)
据我所知,f_vb并f_java包含相同的位.也就是说,BitConverter.ToInt32on f_vb和Float.floatToIntBits(和floatToRawIntBits)on f_java给出相同的东西.但是,花车并不相同.例如,让我们bigEndian == 0x4969F52F.Java将报告958290.94,VB.NET将报告958290.938.我猜这是因为JVM和CLR处理浮点数的方式有所不同,但我对浮点问题知之甚少以找出原因.这种精度的损失导致了线路故障,所以我想确定来源.