J'ai installé Microsoft-R-Open 3.4.0 sur une machine Red Hat Linux Enterprise 7.3 en suivant les instructions https://mran.microsoft.com/documents/rro/installation/. R démarre et semble bien se passer à première vue. Cependant, lorsque je tente de lister les fichiers dans un répertoire avec la commande'translateCharUTF8' doit être appelé sur une exécution CHARSXP arrêtée
files <- list.files(path="/home/username/directory_name/", pattern="*.Rda",, full.names=T, recursive=FALSE)
Je reçois l'erreur
translateCharUTF8' must be called on a CHARSXP
Execution halted
Sur ma machine windows locale la commande fonctionne très bien. Googling ce rien ne se pose vraiment sauf que l'installation peut être cassée. La chose étrange est que si je copie et colle la commande dans R et l'exécute, cela ne fonctionne pas, mais si je la copie et la colle dans R et change cette commande d'une manière qui ne devrait pas changer son résultat mais seulement ajouter des espaces ou quelque chose comme ça, il pourrait fonctionner. Par exemple. changer à
files <- list.files(path = "/home/username/directory_name/", pattern = "*.Rda",, full.names = T, recursive = FALSE)
pourrait fonctionner, pourrait ne pas fonctionner et retourner la même erreur, ou peut exécuter, mais qui pourrait revenir quand je puis tapez « fichiers »
[1]Error: 'getCharCE' must be called on a CHARSXP
Lors de l'utilisation R de la R fondation (https://www.r-project.org/, installé via EPEL), j'obtiens la même erreur et le même comportement.
La commande sessionInfo() renvoie les éléments suivants:
sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server 7.3 (Maipo)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
uname -Mme me donne:
Linux 3.10.0-514.el7.x86_64 x86_64
Toute aide serait grandement appréciée, meilleures salutations
Stefan
Avez-vous des fichiers avec des noms contenant des caractères accentués? Notez également que 'pattern' est supposé être une regex, pas un glob. –
Cela fonctionne-t-il si vous utilisez 'pattern = glob2rx (" *. Rda ")'? – hannes101
Je miroir ce que Hong et Hannes101 dit ci-dessus. Couple de plus de choses; Si vous deviez copier tous les fichiers, etc., de votre machine Linux à la boîte Windows et exécuter la même commande - quel serait le résultat? Aussi, il semble que cette erreur peut se produire s'il y a une corruption de mémoire (en plus des caractères "bizarres"), mais comme vous voyez l'erreur se produire avec MRO et Cran, je me demande si c'est ça. Enfin: Que se passe-t-il si vous redémarrez la machine Linux, puis réessayez? –