Foro de debate

Indexar una variable a otra

Indexar una variable a otra

de Carmen Gonzalez -
Número de respuestas: 0

Hola!

He empezado a trabajar con R hace muy poco y no lo domino muy bien.

Tengo que calcular los rendimientos semanales de una cartera de bonos (tengo 400 semanas). Estos rendimientos se calculan como la variación de los precios medios de los bonos, solo si hay algún bono que se haya negociado en dos semanas consecutivas, en caso contrario el rendimiento de la semana es cero.

Una vez establecidas las condiciones para seleccionar las semanas, selecciono los diferentes bonos que se negocian en cada una de ellas, del siguiente modo:

cusip.i<-levels(week.i$v3)# Para la primera semana. La variable v3 es la que tiene los nombres de los bonos.

cusip.i1<-levels(week.i1$v3)#. Para la segunda semana. 

Después establezco la condición para calcular los rendimientos si hay algún bono que coincida en dos semanas consecutivas (v6 es la variable que contiene los precios),  calculo los rendimientos  y trato de obtener los resultados de la siguiente forma:

for (z in 1:length(cusip.i))

for (k in 1:length(cusip.i1))
   
      {
       if (z==k)
       { 
     yield.bond[z]<-(mean(week.i1$v6[v3==cusip[z]])/mean(week.i$v6[v3==cusip[z]])-1)*100  

    yield.week<-mean(as.vector(yield.bond))
     }  
    else 0
    }
    print(yield.week)

Sin embargo, no lo calcula. Mi problema es que de la variable v6 que tienen los precios, solo tengo que seleccionar aquellos precios que corresponden a los bonos (variable v3) que se negocian en dos semanas. Es decir si la primera semana se negocian los bonos A, B y C; y en la segunda el B y el C. Tendría que calcular primero el rendimiento medio del bono B, después el del bono C, (trato de hacerlo en yield.bond[z]) y por último el rendimiento semanal como media de los rendimientos medios del bono B y C (trato de hacerlo en (yield.week).

Por favor, ¿podrían ayudarme?

Muchas gracias.