Error in strsplit(current.line, "\n") avec Rcmdr

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Nicolas Romillac
Messages : 30
Enregistré le : 07 Jan 2020, 13:53

Error in strsplit(current.line, "\n") avec Rcmdr

Messagepar Nicolas Romillac » 20 Avr 2022, 12:03

Bonjour à tous,
depuis quelques temps j'obtiens un message d'erreur lorsque je spécifie dans Rcmdr des fonctions que j'ai écrit moi-meme:

Error in strsplit(current.line, "\n") :
l'argument n'est pas une chaîne de caractères


Est ce que quelqu'un a déjà rencontré cette erreur ou a une idée sur son origine? Je n'ai rien trouvé sur les divers forums...
En soi, ce n'est pas un très grand problème, il suffit que je les spécifient d'abord dans Rgui, puis que je les exécutent dans Rcmdr, mais c'est un peu fastidieux!

Précédemment ces fonctions marchaient très bien sur Rcmdr et elles fonctionnent très bien quand je les entrent sous RGui.
J'utilise R 4.1.3 sous windows, et tous les packages sont à jour.

Voici un exemple de fonction qui donne ce message d'erreur:

Code : Tout sélectionner

nutricline <- function(x,y){ #x un vecteur de concentrations, y le seuil de concentrations pour la nutricline
d<-c(0,2,5,10,20,30,40,50,60,70)
tab<-cbind(x,d)
tab<-tab[!is.na(tab[,1]),]#enlever les lignes avec na (permettre le calcul de mld meme quand p-1=na)
p<-which( tab[,1] >y)[1]
tab2<-tab[c(p-1,p),]

  if(is.na(p)){ mld<-70} else{#si p est NA, alors la profondeur est 70m
   if(p==1){ncd<-0} else{ #faire l'interpolation linéaire si p n'est pas la première valeur
ncd<-(y-coef(lm(tab2[,1]~tab2[,2]))["(Intercept)"])/coef(lm(tab2[,1]~tab2[,2]))["tab2[, 2]"]
as.numeric(ncd)
  }}
}

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Error in strsplit(current.line, "\n") avec Rcmdr

Messagepar Mickael Canouil » 21 Avr 2022, 08:20

Bonjour,

votre code ne contient qu'une fonction et aucune commande appelant cette fonction.
De plus, la dite fonction ne contient pas strsplit().

Vous parlez de Rcmdr (version 2.7-2 ?), mais dans R, avez-vous le message ?
Je pense que Rcmdr injecte ou manipule les sorties d'affichages et c'est lui qui génère le message et non le code.

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Nicolas Romillac
Messages : 30
Enregistré le : 07 Jan 2020, 13:53

Re: Error in strsplit(current.line, "\n") avec Rcmdr

Messagepar Nicolas Romillac » 21 Avr 2022, 12:45

Bonjour et merci de votre réponse,
effectivement le problème se produit quand je spécifie la fonction, pas quand je l'appelle. En fait si je la spécifie dans Rgui je peux l'appeler tranquillement dans Rcmdr (mais comme j'aime bien travailler dans Rcmdr j'aimerai pouvoir tout y faire!).

Le fait est que j'obtiens le même message d'erreur quelle que soit la fonction, alors qu'aucune ne contient strsplit().

En réalité, j'ai mal présenté le problème: Rcmdr plante et le message d'erreur s'affiche dans Rgui (il s'agit bien de Rcmdr 2.7-2).

Cordialement,

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Error in strsplit(current.line, "\n") avec Rcmdr

Messagepar Mickael Canouil » 22 Avr 2022, 15:44

Désinstallez et réinstaller Rcmdr.
Essayez une autre version.
Mickaël
mickael.canouil.fr | rlille.fr

Nicolas Romillac
Messages : 30
Enregistré le : 07 Jan 2020, 13:53

Re: Error in strsplit(current.line, "\n") avec Rcmdr

Messagepar Nicolas Romillac » 26 Avr 2022, 09:10

Désintaller et réinstaller, c'est déjà fait et ça ne change rien :(
Mais effectivement, revenir à une version plus ancienne est surement une bonne idée!
Bonne journée,


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité