Quantile関数自体では、サブセットを操作することはできません。したがって、サブセットデータを抽出するには何らかの方法が必要です。
ただし、そうしたように、サブセットデータフレームを抽出することはお勧めしません。 quantile
はベクトルを受け入れるので、データフレーム全体ではなく列をサブセット化するだけで済みます。
quantile(with(carddata, limit_amount[new_user_indicator == "Y"]), 0.25)
with
機能は、そうでない場合は、あなたが必要とする、エキス列を助け
quantile(carddatal$imit_amount[carddata$new_user_indicator == "Y"], 0.25)
更新
あなたが繰り返しこれを行うにしている場合、関数(変化の関数名を書きますfoo
をお好きなものに)
foo <- function(df, out_var, in_var, in_level, prob) {
quantile(df[[out_var]][df[[in_var]] == in_level], prob)
}
次に、あなたが行うことができます:
foo(carddata, "limit_amount", "new_user_indicator", "Y", 0.25)
を私はout_var
、そのレベルのためにあなたがここに
foo(carddata, "limit_amount", "new_user_indicator", "N", 0.25)
を行うことができますので、あなたは、別のレベル "N" を持っていると仮定しています、in_var
は、列名があります(したがって文字列)を出力変数と入力変数に使用します。 in_level
は入力変数のレベルです。そして、あなたはprob
が何であるかを知っています。
あなたは私の機能を使用して、入力変数の0.25 のためのすべてののレベルをしたい場合は
より強力な方法はまだ愚かです。 x2
に従ってにquantile(x1, ...)
を適用するtapply
tapply(carddata$limit_amount, cardata$new_user_indicator, FUN = quantile, prob = 0.25)
tapply(x1, x2, FUN, ...)
使用してください。 x2
に10レベルがある場合、それらのすべてに対して0.25分位数を取得します。
'quantile(サブセット(carddata、new_user_indicator ==" Y ")$ limit_amount、.25)'はどうですか? – Frank