Problema nas dimensões. Cálculo Matricial

Mais uma dúvida simples: O problema é no final do código ( em vermelho) : datas <- read.table("ddd.txt", header=F) datas <- as.Date(datas[,1], format="%m/%d/%y") i <- read.table("iii.txt", header=F) i <- i[,1] cupons <- read.table("cc1.txt", header=F) cupons <- as.Date(cupons[,1], format="%m/%d/%Y") fluxo <- read.table("ff1.txt", header=F) fluxo <- fluxo[,1] falta <- outer (cupons, datas, "-") *.69 falta <- matrix(falta,nrow(falta),ncol(falta)) falta <- ifelse(falta < 0, NA, falta) VP <- cbind((fluxo)/((1+i)^(falta))) plot(colSums(VP, na.rm=T), type="l") i tem 297 elementos, datas tem 297 elementos cupons tem 14 elementos, e fluxo tem 14 elementos; Logo, falta e VP tem 297 colunas e 14 linhas quanto ploto VP, aparecem 14 vales no gráfico. Acho que algo de errado em (1+i)^(falta). O que quero fazer é,(1+i[1])^(falta[,1]), (1+i[2])^(falta[,2]), ... , (1+i[n])^(falta[,n]), ou seja, elevar (1+ i), para cada i["n"] em todos os elementos da coluna "n" em "falta". Assim, acabaria também com uma matriz 14 por 297. E quero dividir os 14 elementos de "fluxo" pelos 14 elementos de cada coluna na matriz gerada. Deu pra entender? Obrigado, Luciano.

(1+matrix(rep(i, each=14), nr=14))^falta nao basta? 2011/4/5 Luciano Ramos Gonçalves <lrg.financas@gmail.com>:
Mais uma dúvida simples: O problema é no final do código ( em vermelho) :
datas <- read.table("ddd.txt", header=F) datas <- as.Date(datas[,1], format="%m/%d/%y") i <- read.table("iii.txt", header=F) i <- i[,1] cupons <- read.table("cc1.txt", header=F) cupons <- as.Date(cupons[,1], format="%m/%d/%Y") fluxo <- read.table("ff1.txt", header=F) fluxo <- fluxo[,1] falta <- outer (cupons, datas, "-") *.69 falta <- matrix(falta,nrow(falta),ncol(falta)) falta <- ifelse(falta < 0, NA, falta) VP <- cbind((fluxo)/((1+i)^(falta))) plot(colSums(VP, na.rm=T), type="l")
i tem 297 elementos, datas tem 297 elementos cupons tem 14 elementos, e fluxo tem 14 elementos; Logo, falta e VP tem 297 colunas e 14 linhas quanto ploto VP, aparecem 14 vales no gráfico. Acho que algo de errado em (1+i)^(falta). O que quero fazer é, (1+i[1])^(falta[,1]), (1+i[2])^(falta[,2]), ... , (1+i[n])^(falta[,n]), ou seja, elevar (1+ i), para cada i["n"] em todos os elementos da coluna "n" em "falta". Assim, acabaria também com uma matriz 14 por 297. E quero dividir os 14 elementos de "fluxo" pelos 14 elementos de cada coluna na matriz gerada. Deu pra entender?
Obrigado,
Luciano.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
participantes (2)
-
Benilton Carvalho
-
Luciano Ramos Gonçalves