Buenas Daniela:
¿Puede poner el código con el que está intentando hacerlo?
Un saludo.
Buenas Daniela:
¿Puede poner el código con el que está intentando hacerlo?
Un saludo.
Es este:
c=c(13,14,36,38,40,41,45,46,47,48,54,248,270,290,291,293,310,326,327,336,360,361,600,650,700,800,801)
d=c(28628,197,1186,228,197,410,3173,571,270,152,16,457,971,2314,2261,1404,115,50,18,2218,15143,
83,26507,13523,8074,3780,7168)
for(i in 1:27)
{Cced_i=datos[datos$Codigo_Producto==c[i],]
assign(paste0('Cced_', c[i]), Cced_i)
Mced_i=Cced_i[sample(nrow(Cced_i),size=d[i]),]
assign(paste0('Mced_', c[i]), Mced_i)
print((mean(Mced_i$Capital_Cedido)))}
La idea es que me quede una columna con todos los Cced y los Mced, no valores solos que va imprimiento en la consola a medida que va haciendo cada iteración del for.
Buenas:
Si no pone el código que no le funciona, no se le puede ayudar. En ese código no veo ningún rbind.
Si no da información suficiente de qué quiere hacer no es posible ayudarle.
Ponga un ejemplo con un conjunto de datos pequeños y muestre con ese conjunto de datos, qué quiere calcular.
Un saludo.
Es este:
a=c(13,14,36,38,40,41,45,46,47,48,51,53,54,55,95,99,213,214,215,248,262,267,270,289,290,291,292,293,
294,297,310,326,327,330,332,336,360,361,362,402,404,500,600,650,700,800,801)
b=c(2939,183,824,213,179,351,2051,463,234,133,10,16,16,3,3,8,5,2540,89,357,4,898,635,354,910,1105,218,728,905,58,115,
49,18,121,8,819,604,75,18,2378,768,419,2925,2693,3137,1430,1858)
for(i in 1:47)
{C_i=datos[datos$Codigo_Producto==a[i],]
assign(paste0('C_', a[i]), C_i)
M_i=C_i[sample(nrow(C_i),size=b[i]),]
assign(paste0('M_', a[i]), M_i)
cap_as=cbind(cap_as,M_i)}
Con el último lo que quiero hacer es ir agregando cada elemento que va haciendo del M_i, de manera que cuuando llame cap_as me salga la columna con los valores de cada for que hace paa M_i
Buenas:
Este código falla debido a que en la primera pasada del bucle, cap_as no está definido.
Prueba con esto
if (i==1) cap_as = M_i else cap_as=cbind(cap_as,M_i)
Un saludo.
Muchas gracias, funcionó, porfis, una ultima dudita. Arme un vector de pólizas que necesito extraer de la base original (al cual llamo "polizas"), pero al querer extraer estos valores mediante el código "muestra_1=datos[datos$Poliza==polizas,]", R me arroja este error: Warning message:In datos$Poliza == polizas : longitud de objeto mayor no es múltiplo de la longitud de uno menor. No se porque no me funciona, solo quiero extraer de la base datos las pólizas indicadas en el vector pólizas. Este es el codigo que estoy utilizando:
a=c(13,14,36,38,40,41,45,46,47,48,51,53,54,55,95,99,213,214,215,248,262,267,270,289,290,291,292,293,
294,297,310,326,327,330,332,336,360,361,362,402,404,500,600,650,700,800,801)
b=c(2643,116,318,69,121,118,981,172,74,133,10,4,11,2,1,2,1,1061,4,356,1,56,429,
102,528,482,79,728,709,29,114,25,9,53,8,590,600,60,13,520,56,159,2586,2459,2315,
1014,1437)
for(i in 1:47)
{A_i=POL[POL$Codigo_Producto==a[i],]
assign(paste0('A_', a[i]), A_i)
B_i=A_i[sample(nrow(A_i),size=b[i]),]
assign(paste0('B_', a[i]), B_i)
if (i==1)
muestra_cap_a=B_i
else
muestra_cap_a=rbind(muestra_cap_a,B_i)}
polizas=as.numeric(muestra_cap_a$Poliza)
muestra_1=datos[datos$Poliza==polizas,]
Muchas gracias profesor, con lo que usted me dijo funcionó perfecto. Un consulta, porque no sirve colocándole que extraiga los que sean igual al vector póliza como lo tenía, si finalmente lo que quería era tomar todos los que coincidían con ese valor. ¿Por que ahí no funciona el ==?
Buenas:
Cuando se comparan dos vectores la comparación se hace elemento a elemento. Como puedes comprobar en
> set.seed(0)
> x <- sample.int(2, 5, replace=TRUE)
> x
[1] 2 1 1 2 2
> y <- sample.int(2, 5, replace=TRUE)
> y
[1] 1 2 2 2 2
> x == y
[1] FALSE FALSE FALSE TRUE TRUE
>
Cuando un vector es de longitud inferior al otro se hace un reciclado, es decir, el más corto se repite tantas veces como sea necesario para compararlo con el grande, si la longitud del más corto no es un múltiplo de la del pequeño hace la comparación pero da el aviso pues esto no es lo habitual,
> z = c(1,2)
> z
[1] 1 2
> x == z
[1] FALSE FALSE TRUE TRUE FALSE
Warning message:
In x == z :
longitud de objeto mayor no es múltiplo de la longitud de uno menor
Un saludo
Muchas gracias por su ayuda profesor, quedé clarita!