1
いくつかのデータにわたって、グループ化変数によって一連の異なるフィルタを実行しようとしています。一例として、このコードはグループ化変数(歯車)全体に1つのフィルタ(0.1)を生成するように動作します。R:ddplyを使ってstats :: filterをループする
library(plyr)
library(BBmisc)
mtcars <- mtcars[order(mtcars$gear),]
mtcars2 <- ddply(mtcars,.(gear),transform,mpgfilter = as.numeric(stats::filter(mpg, filter=0.1, method="recursive")))
しかし、私は複数のフィルタをフィードすることができます。私はラップ関数内でコードを入れ子にすることを考えていました。例として、ここでは(リストなど)様々なフィルターは、
newdata <- as.data.frame(seq(from = 0.1, to = 0.9, by = 0.1))
newdata <- as.data.frame(t(newdata))
colnames(newdata) = newdata[1, ]
colnames(newdata) <- paste("V", colnames(newdata), sep = "_")
newlist <- convertColsToList(newdata)
そして、ここでは、私は(動作しない)ソリューションを考えていたものです。
newlist3 <- lapply(newlist, function(y){
mtcars2 <- ddply(mtcars,.(gear), transform, mpgfilter = as.numeric(stats::filter(mpg, filter=y, method="recursive")))
})
任意の提案?私の最終的な出力は、各列が異なるフィルタからの出力を示すデータフレームとなります。答えは、より良い方法があればlapply/ddplyを使う必要はありません。
ありがとうございました。