Bonjour,
Je demande votre aide car j'ai un soucis avec la fonction paste lorsque cette dernière utilise un objet créé dans une fonction. C'est un peu difficile à expliquer comme ça donc je vais montrer mon problème par l'exemple :
Ce petit programme :
Lorsque je le lance, R me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 X1 = runif(30,1,2) X2 = runif(30,10,12) test <- function (X1,X2){ Y = 5+ X1 + 2*X2 + runif(30,0,0.1) print('Y') print(Y) formule = paste('Y ~ X1', sep = '') for(i in 2 : 2) { formule = paste(formule, ' + ' , 'X',i , sep = '') } print('formule') print(formule) regression = lm(formule) print(summary(regression)) } test(X1,X2)
Il dit que l'objet Y est introuvable alors que quelques lignes au dessus il arrive à me l'afficher !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [1] "Y" [1] 27.43397 28.19742 28.49871 28.05793 29.26706 27.85954 27.90859 29.25451 [9] 28.94962 29.48921 27.74147 28.67211 29.60310 26.30874 30.12588 26.76168 [17] 27.23888 27.63733 27.76875 28.94732 28.84537 26.96598 29.09912 28.38166 [25] 27.79499 30.38515 27.66418 27.08074 29.66060 29.94760 [1] "formule" [1] "Y ~ X1 + X2" Erreur dans eval(expr, envir, enclos) : objet 'Y' introuvable
Et le mieux, c'est que si je n'utilise pas de fonction, ça fonctionne !
Comme le montre le programme R suivant :
Qui lui, ne pose aucun problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 X1=runif(30,1,2) X2=runif(30,10,12) Y=5+X1+2*X2+runif(30,0,0.1) formule = paste('Y ~ X1', sep = '') for(i in 2 : 2) {formule = paste(formule, ' + ' , 'X',i , sep = '')} print('formule') print(formule) regression = lm(formule) print(summary(regression))
Comment faire pour que mon premier programme fonctionne correctement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 [1] "formule" [1] "Y ~ X1 + X2" Call: lm(formula = formule) Residuals: Min 1Q Median 3Q Max -0.050324 -0.015752 0.004753 0.013237 0.044199 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 5.203691 0.096303 54.03 <2e-16 *** X1 0.993411 0.017030 58.33 <2e-16 *** X2 1.987144 0.008172 243.16 <2e-16 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 Residual standard error: 0.0264 on 27 degrees of freedom Multiple R-squared: 0.9996, Adjusted R-squared: 0.9995 F-statistic: 3.034e+04 on 2 and 27 DF, p-value: < 2.2e-16
Merci d'avance !
Partager