Je suis un pratiquant de longue date de SAS, mais n’ayant plus la licence sur mon nouveau poste, je suis contraint de passer à R, et de me débrouiller à peu près tout seul. Le choc culturel est assez violent, disons-le.
Un des principaux problèmes que je rencontre est de trouver une alternative aux macros SAS.
Un exemple : ci-joint un modèle de fichier que je dois traiter avec des enregistrements pour environ 200 établissements sur une série chronologique (pour une enquête agricole). Il se trouve que pour les données les plus récentes, seul une partie des établissements ont répondu au questionnaire. Je veux donc faire une régression entre les données (prix1,prix2…) de chaque établissement non répondant avec la moyenne pour les répondants afin d’imputer des valeurs pour les mois non remplis, si l’ajustement est de bonne qualité.
Le fichier a cette allure :
Ident_etab anmois prix1 prix2
1 201501 250 360
1 201502 301 438
1 201503 319 337
1 201504 285 313
1 201505 252 338
1 201506 300 393
1 201507 401 464
1 201508 415 495
1 201509 321 390
1 201510 201 344
1 201511 185 246
1 201512 155 274
1 etc etc etc
2 201501 275 422
2 201502 321 356
2 201503 322 418
2 etc etc etc
Pour récupérer dans des tables différentes les valeurs individuelles afin de faire les tests, en SAS j’aurais fait quelque chose de ce genre:
Code : Tout sélectionner
%macro etab ;
%do i=1 %to 200;
data dat&I;
set fichier;
if ident_etab = &I;
%end;
%mend;
%etab;
Or j’ai beau chercher un moyen d’automatiser cela dans R, par des boucles ou autre, je n’y arrive pas. Auriez-vous une solution ? Nb, désolé si la réponse figure déjà quelque part, mais je n’ai pas trouvé.
Stéphane