0
はとても良い、これまでのところ、次の例as.formula '='(オブジェクトが見つかりません)
df1 <- data.frame(a=c(1,2,3),b=c(2,4,6));
transform(df1,c=a+b)
a b c
1 1 2 3
2 2 4 6
3 3 6 9
に検討します。左手と右手側のセパレータとして「〜」
transform(df1,as.formula("c=a+b"))
ただし、Rは
Error in eval(expr, envir, enclos) : object 'b' not found
は、このエラーは使用して発生していないと言う:今私はas.formulaを使用して、動的にこれをコーディングしたいと思います。私は何とか数式の評価を遅らせることができますか?代入にas.formulaを使用することは可能ですか?私は 'with'で回り込んでみたが役に立たなかった。
あなたはそれらを式ではなく「式」にしたいと思っています。しかし、 'eval(parse(text =" whatever "))'にいくつかのバリエーションがあり、ひどい恐ろしいコードとバグを見つけにくいという結果に終わるようです。可能であれば、それほど巧妙ではないものを試してみてください。 –
文字列を等号に分割する方がよいでしょう。左側には、 'df1 [[" c "]] < - something'のようなものがあります。 '' a + b ''から' df1'で評価されたものになるということは、 '' eval(parse(text = "a + b")、df1) 'または同様に醜いものを意味します。あなたが達成しようとしていることについてもっと詳しく教えて、代替案を考えるのを助けることをお勧めします。 –
私の本当の問題では、それを自動的に行うことも重要ではありません。私はちょうど "XA [XOY] [ABC] _ [0-9] [0-9]"、例えば "XXA_05"というカテゴリに属する名前で、約50列あります。今、私は同じ "X [XOY]"タイプと同じ数字のすべての列、例えば "XXA_00"と "XXB_00"を平均して、これらの列の最初に保存したいと思います。 もちろん、これは右の列をグレープすることによって列レベルで行うこともできます。私は数式問題をアクロスに遭遇したばかりで、数式として実装できるかどうかを知りたいと思っています。 – Johannes