Foro de discusión y soporte para usuarios de R
Nota: Una url estable a este foro es https://knuth.uca.es/R-foro.
Graficar tabla de doble entrada
graminea latifoliada s. desnudo ---->especies
lineal 0.46 30.20 69.33
puntual 0.36 36.36 63.27
|
Método
Quizás si dispongo de los datos de otra manera podría ser mas fácil graficar, aún así no se como hacerlo.
método especie porcentaje
lineal gramínea 0.46
puntual gramínea 0.36
lineal latifoliada 30.2
puntual latifoliada 36.36
lineal s. desnudo 69.33
puntual s. desnudo 63.27
Desde ya agradezco todas las sugerencias.
Grafica de medianas
Un saludo a todos y gracias de antemano.
Maribel
Indexar una variable a otra
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.
muestras aleatorias
Boxplot de un dataframe
Windows7 lento en el arranque de R
Combinar conjuntos de datos
Hola,
de nuevo vuelvo a necesitar vuestra ayuda.
Ahora tengo dos conjuntos de datos diferentes y necesito combinarlos.
El primero es de la forma:
nº a1 a2 a3
1 35 4 13
2 1 0 16
3 19 23 42
4 6 3 0 (...)
y el segundo es:
nº var int
1 13 a3
2 6 a1
3 9 a1
4 15 a2 (...)
Cada valor del conjunto 2, va a incrementar en 1 una celda determinada del conjunto uno. De tal forma que "int" define la columna y "nº" la fila del primer conjunto al que hay que sumarle 1. Es decir, quedaría así
nº a1 a2 a3
1 35 4 14
2 2 0 16
3 20 23 42
4 6 4 0
Como veis, he sumado 1 en [2,a1], [3,a1], [4,a2] y [1,a3] del primer conjunto de datos.
Ahora que ya estoy aprendido a hacer bucles, se me ocurre cómo solucionarlo usando uno, el problema es que mi fichero tiene 51 columnas y varios miles de filas y el bucle que tengo en la cabeza implicaría muchas repeticiones, con lo cual no me conviene.
Espero que me podais ayudar una vez más. Gracias de antemano
Saludos,
Nerea
Adaptar curva de regresión
Gracias.