2017-03-01 10 views
1

特定の条件の下で、以下のダミー変数をRで生成するのに問題があります。制約の下でランダムなダミーを生成する

私は、次の規則の下の列VAR3を生成したい
var1<-c("a","b","c","a","a","a","b","c","b","a") 
var2<-c("val1","val1","val1","val1","val2","val1","val3","val3","val2","val1") 
db<-data.frame(cbind(var1,var2)) 

  • var2には= "val2の" OR var2には= "val3は" ならば、VAR3 = 1
  • var2の= "VAL1場合"AND VAR1 =" val1と "AND VAR1!= "" その後、VAR3 = 1
」var2の=ならば、そうでない場合は0
  • をランダムに割り当てることがあるn回(のは3を言わせて)値1"

    私がしようとしているのは、定義された条件の下でいくつかの行(0でマークされている)をランダムに除外することです。

    誰かが私を助けてくれますか?

  • 答えて

    2

    あなたはすべてのvar3 1を作った後、これは組み合わせに「」&「VAL1」を値0を代入された第二の条件を満たしているだけではゼロ

    db$var3 = 1 
    x = which(db$var2 == "val1" & db$var1 == "a") #Get indices where 2nd condition is met 
    db$var3[sample(x, length(x) - 3)] = 0 #Assign 0 all indices in x except 3 
    
    +0

    を作ることによって開始することができますように思えます。リクエストはこれらの行の1〜3をランダムに割り当て、0〜もう1つは – JoeUK

    +0

    @ JoeUKです。今は修正されていると思います –

    関連する問題