私は単純なカスタム関数のカップルを1つの特定の関数で統合するために書いています。引数が欠落していますが、デフォルトはありませんが、ループ内にのみあります
これらはデータのサブセットに使用されます。最初はあまり具体的である:
x$COL3
で
unspecific_subsetting=function(x,var1,var2){
subset(x, x$COL1 %in% var1
& x$COL2 %in% var2
& x$COL3 %in% "A")
}
それが一定であるため、私は"A"
を置きます。私は(year+1)
を書いたが、後に私もそれを変数に変更する場合があります
specific_subsetting=function(x,var1,var2,year){
subset(x, x$COL1 %in% var1
& x$COL2 %in% var2
& x$COL3 %in% "A"
& x$COL4 %in% (year+1))
}
:第二に、それはまったく同じことを行いますが、それは唯一選ばれた行をサブセット、より具体的です。私が使用する最後の関数は、単純なパーセント変化である:
pcchange=function(x){ c(NA, diff(x)/x[-length(x)]) }
だから、この時点でそれを説明する程度の時間である - 私は、特定の引き算データセットの百分率変化を計算し、1つの便利な機能、にすべてのこれらの機能を組み合わせることを希望します選択された行からpcchange値を返します。計算し、その後、それは基本的にデータの特定の部分をサブセットとDFと、そして最終的に目的の行を返すためにpcchangesに新しい列が追加されます -
big_function=function(x,var1,var2,year){
x=unspecific_subsetting(x, var1, var2)
x=data.frame(x,"growth"=(pcchange(x$COLn)*100))
x=getforecast(x,var1,var2,year)}
は、より具体的に:それはこのようになります。この関数は動作します。そして、魅力のように働く。問題は私がループに入れたときに始まります。それは次のようになりますので、これまでのところ、私はリストに基づいてループを書く:
for (i in 1:length(df.names.list)){
assign(NEW.df.names.list[i],big_function(get(df.names.list[i])),var1,var2,year.list[i])}
だから、あなたは、私が唯一の選択された行を構成する各1で新しいDFSを作成しようとしています見ることができるように(ところで:私は私の「サブセット」承知しています関数はに重複しますが、私は気にしません)。そして、これは私にエラーを返します:
私がチェックError in unspecific_subsetting(x, var1, var2) :
argument "var1" is missing, with no default
は、この問題はすべての関数内のすべての単一の引数を検討し、それだけで最初の1つのRがつまずいた返さ。 文字通り、ここで何が問題なのか、私は同じようなループカップルを使用し、このような結果は得られませんでした。
いくつかのデータを提供できますか? – Consistency
最初に確認する:エラーが発生したときに、あなたは 'var1'に何を持っていますか? – lbusett
私はポストを書くのを簡単にするために「あなたの質問に答える」を使用します。 – Alexandros