2010-03-14 5 views
1

J'ai remarqué un dysfonctionnement étrange en utilisant findFn fonction (bibliothèque sos) et je ne peux pas trouver la source. Bien que cela fonctionne bien sur mon PC Windows XP, il ne fonctionne pas sur mon Vista.Strange findFn dysfonctionnement

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 et les paquets mis à jour. Des idées où le problème pourrait être?

Bonus: Comme il est évident, je cherchais des fonctions à propos tests for randomized experiments

+0

Utilisez-vous la même instance R? Et je veux dire * exact * la même chose, copié entre deux ordinateurs sans rien changer. – Marek

+0

Non, ce sont des installations indépendantes. Et je ne me souviens pas si cela fonctionnait plus tôt, ou cela n'a jamais fonctionné correctement. –

+0

Dans unix (même version R) je reçois le même résultat que vous obtenez dans Vista –

Répondre

5

Dans le code source des sos package, findFn.R, ligne 80, je l'ai trouvé l'erreur

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

Ce "si" est faux, avec un! = Au lieu de ==, et donc l'espace n'est pas traduit en +. La solution rapide serait d'utiliser le "+" vous syntaxe

donc:

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

Ce serait génial si vous l'avez soumis aux auteurs du paquet. – Shane

+0

Fait, j'ai envoyé un courriel à l'auteur, et lui ai donné le lien de cette page. Nous espérons ajouter un autre programmeur R à la communauté de StackOverflow :-) –

+2

Mais pourquoi cela fonctionne sur Xp et ne sont pas sur Vista? – Marek