2010-03-14 82 views
1

我注意到使用findFn函数(函数库sos)时出现了一个奇怪的故障,我找不到源代码。虽然它在我的Windows XP电脑上运行良好,但它不在我的Vista上。奇怪的findFn故障

library (sos) 

findFn("randomization test") 
# in both finds 72 results 

findFn("{randomization test}") 
# In XP finds 19 or about so, but in Vista whenever I use {} and more than one word inside, 
# I keep getting the following: 

found 0 matches 
x has zero rows; nothing to display. 
Warning message: 
In findFn("{randomization test}") : 
    HIT not found in HTML; processing one page only. 

R ver = 2.10.1和软件包已更新。 问题可能出在哪里?

奖励:由于这是显而易见的,我一直在寻找的功能有关tests for randomized experiments

+0

您使用的是相同的R-实例?我的意思是*精确*相同,在两台计算机之间复制而不用更改任何内容。 – Marek 2010-03-15 09:37:57

+0

不,他们是独立安装。我不记得它是否在早些时候工作,或者它从未正常工作。 – 2010-03-15 11:04:14

+0

在unix(相同的R版本)中,我得到了与Vista相同的结果 – 2010-03-15 11:48:56

回答

5

SOS的源代码包,findFn.R,行80,我发现这个错误

if (substr(string, 1, 1) != "{") 
    string <- gsub(" ", "+", string) 

这个“如果”是错误的,用!=而不是==,因此该空间不会被转换为+。快速的解决办法是使用“+”语法自己

这样:

> findFn("{randomization+test}") 
found 19 matches 
+1

如果您将其提交给软件包作者,这将是非常好的。 – Shane 2010-03-15 16:19:08

+0

完成后,我通过电子邮件向作者发送了此页的链接。希望我们将另一个R程序员添加到StackOverflow的社区中:-) – 2010-03-15 17:01:00

+2

但是为什么它在Xp上工作并且不在Vista上? – Marek 2010-03-15 17:07:10