93 votes

Générer une variable fictive

J'ai eu des difficultés à générer les variables fictives suivantes dans R :

J'analyse des données de séries chronologiques annuelles (période 1948-2009). J'ai deux questions :

  1. Comment puis-je générer une variable muette pour l'observation n°10, c'est-à-dire pour l'année 1957 (valeur = 1 en 1957 et zéro sinon) ?

  2. Comment générer une variable muette qui est nulle avant 1957 et prend la valeur 1 à partir de 1957 et jusqu'en 2009 ?

0voto

kangkan Dc Points 83

Bonjour, j'ai écrit cette fonction générale pour générer une variable fictive qui reproduit essentiellement la fonction replace dans Stata.

Si x est le cadre de données est x et je veux une variable muette appelée a qui prendra la valeur 1 quand x$b prend la valeur c

introducedummy<-function(x,a,b,c){
   g<-c(a,b,c)
  n<-nrow(x)
  newcol<-g[1]
  p<-colnames(x)
  p2<-c(p,newcol)
  new1<-numeric(n)
  state<-x[,g[2]]
  interest<-g[3]
  for(i in 1:n){
    if(state[i]==interest){
      new1[i]=1
    }
    else{
      new1[i]=0
    }
  }
    x$added<-new1
    colnames(x)<-p2
    x
  }

0voto

Sophia J Points 105

Une autre façon de procéder est d'utiliser

ifelse(year < 1965 , 1, 0)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X