Как сравнить каждый ряд временных рядов с константой в R - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь достичь чего-то простого, но пока не нашел элегантного пути.

Я хочу сравнить каждый элемент временной серии процентных ставок с максимальным и минимальным значениями.

В настоящее время я использую:

library(quantmod)
getSymbols("TB3MS", src = "FRED")
index <- TB3MS["1970-01-01::1999-12-01"] ; plot(index)
margin <- 0.02
crate <- index/100 + margin # composite rate (index + margin)

plot(crate)


floor <- 0.06
cap <- 0.12

for (i in 1:length(crate)){
  crate[i,1] <- min(crate[i,1],cap)
}

for (i in 1:length(crate)){
  crate[i,1] <- max(crate[i,1],floor)
}

plot(crate)

, но это должно быть возможно сделать более элегантно.

Я благодарен за любую помощь.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Вы можете сделать это с pmax и pmin или с базой R

crate$TB3MS <- pmax(crate$TB3MS, floor)
crate$TB3MS <- pmin(crate$TB3MS, cap)

crate$TB3MS[ crate$TB3MS<floor ] <- floor
crate$TB3MS[ crate$TB3MS>cap ] <- cap
1 голос
/ 07 апреля 2020

Вы можете использовать функции pmin и pmax, чтобы избежать петель

crate[,1] <- pmin(crate[,1],cap)
crate[,1] <- pmax(crate[,1],floor)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...