私は多くの場合、xts
フォーマットのデータを扱いますが、しばしばそれらをスケールする必要があります(ある日付では100に等しいと言います)。私は現在、for-loop
を使用して動作する関数を使用してこれを行いますが、これは非常にの機能のようには見えません。ここでxtsオブジェクトのスケールカラム
は、私は今それを行う方法は次のとおりです。
df1 <- data.frame(rnorm(100), runif(100), 1:100*rnorm(100))
dfx <- xts(df1, order.by = seq(as.Date("2001-01-01"), by='mon', length.out=100))
dfxColScl <- function(dfrm, pos=1, idx = 100)
{
scaledDF <- dfrm
for (i in 1:ncol(dfrm)) {
scaledDF[, i] <- dfrm[,i]/as.numeric(dfrm[pos, i]) * idx
}
return(scaledDF)
}
これを行うにはR
方法ですいくつかの巧妙なapply
タイプの機能はありますか?
+1、クール - ありがとう。 – ricardo
ニース。私は 'sweep'が' coredata(dfx [1]) 'を使わなければ動作しないと仮定しましたが、 'array'への内部呼び出しがあなたのために処理します。 –