データフレームの各行に関数を適用しようとしています。この関数は、引数としてcharsとnumsの組み合わせを使用します。
これは集計の演習ではありませんが、char変数とnum変数の両方を使用する一連の条件に基づいた、既存のdata.frame内の新しいフィールドの定義です。すべての変数はdata.frameにあります。
関数がデータフレーム行をベクトル(この場合はcharベクトル)に変換することを知っていapply
ます。関数内でデータフレーム変数を再キャストすることは避けたいと思います。
data.frame行全体で関数を実行するためapply
の使用方法とパッケージに関する投稿がいくつかありますが、私の初心者の観点からは、例では行ごとにcharパラメーターとnumパラメーターを混在させていません。plyr
ありがとう。
condsIdx <- function(IDa,IDb,clss){
if (clss == 'a'){
y = IDa
} else if (clss == 'b' && IDb > 14) {
y = IDb
} else {
y = -1
}
y
}
df <- data.frame( IDa=c(1,2,3,4,5,6),
IDb=c(11,12,13,14,15,16),
clss=c('a','a','a','b','b','c'))
df$res <- -1
for ( i in 1:nrow(df) ){
df$res[i] <- condsIdx(df$IDa[i],df$IDb[i],df$clss[i])
}