0
データフレームがあり、各列はカテゴリ変数で、値は0または1のtargetという名前の列です。 データフレームを列でループして計算しようとしています各列の異なるレベルによる平均ターゲット。名前でデータフレームをループするR
n = c(2, 2, 1)
s = c(1, 0, 1)
b = c(TRUE, FALSE, TRUE)
target = c(1,0,0)
df = data.frame(n, s,b,target)
for(i in 1:a){
aggregate(df$target ~ as.name(colnames(df)[1]), df, mean)
}
私は単なる文字列で
aggregate(df$target ~ n, df, mean)
にn個を置き換えることはできませんここにいるようです。この種の問題を解決するには?どうもありがとう。
あなたは式 'aggregate(target〜n、data = df、FUN = mean)'を作成する必要があります。たとえば、 'sprintf'を使用して呼び出しを構築することができます。 'as.formula(sprintf(" target〜%s "、colnames(df)[i]))'。 –
'lapply(df [、 - 4]、function(x){集合(ターゲット〜x、データ= df、FUN =平均)})'? – alistaire
複数の集約DFSまたは実行/条件付き平均が必要ですか?希望の結果を説明してください。 – Parfait