Tôi thường xử lý dữ liệu ở định dạng xts
và thường phải chia tỷ lệ cho chúng (giả sử bằng 100 vào một số ngày). Tôi hiện đang làm điều này bằng cách sử dụng một chức năng, hoạt động bằng cách sử dụng một for-loop
- tuy nhiên điều này không có vẻ rất chức năng.cột tỷ lệ của đối tượng xts
Dưới đây là làm thế nào tôi làm điều đó bây giờ:
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)
}
Có một số thông minh apply
loại chức năng đó là R
cách để làm điều này?
+1, tuyệt vời - cảm ơn. – ricardo
Tuyệt. Tôi cho rằng 'sweep' sẽ không hoạt động nếu không sử dụng' coredata (dfx [1]) 'nhưng lời gọi nội bộ tới' mảng' sẽ xử lý điều đó cho bạn. –