Я часто разбираюсь с данными в форматах 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)
}
Есть некоторые умные apply
функция типа, которая является R
способ сделать это?
+1, круто - спасибо. – ricardo
Ницца. Я предположил, что 'sweep' не будет работать без использования' coredata (dfx [1]) ', но внутренний вызов' array' позаботится об этом для вас. –