Hola, Hay un primer error en la forma en la que grabas el csv. Tienes que indicar que no te ponga nombres a las filas... Y al leer el csv, tienes que indicar que hay cabecera.
write.csv(ms, file = 'dato.csv', *row.names = FALSE*) datIn <- read.table('dato.csv', sep = ',', as.is = T, *header = TRUE*) Y luego hay otro error importante. Cuando dices: mtzbin[i, j] Uno esperaría un único valor para rellenar ese elemento de la matriz "mtzbin", pero lo que obtienes de esta cuenta: ((vec/sma)^vec)*((1-vec/sma)^(sma-vec))*choose((sr-1),(vec-1)) es esto... ((vec/sma)^vec)*((1-vec/sma)^(sma-vec))*choose((sr-1),(vec-1)) [1] 0.002626719 0.003161702 0.002793684 0.003065193 0.002971755 0.002708859 [7] 0.003161702 0.002626719 0.002626719 0.002708859 0.002626719 0.002971755 [13] 0.002881284 0.003364353 0.002793684 0.003065193 0.004901558 0.002793684 [19] 0.002971755 0.004187086 0.004057734 0.002881284 0.003364353 0.003470717 [25] 0.002708859 0.003261385 0.003364353 0.002971755 0.002971755 0.002626719 [31] 0.002881284 0.002881284 0.002971755 0.002626719 0.002547173 0.002708859 [37] 0.003470717 0.002793684 0.002708859 un vector de 37 elementos... Hay algo que en concepto no es correcto en esa cuenta. Claramente le faltan subindices, "sma" es un vector, Cuando tienes este tipo de problemas, itera "a mano". Simplemente haz: i <- 1 j <- 1 Y ves el resultado de la operación... En cambio la línea que tienes comentada, parece que es la correcta, "sma" está indexado..: ((vec/sma[j])^vec)*((1- vec/sma[j])^(sma[j]-vec))*choose((sr-1),(vec-1)) [1] 0.002626719 Y efectivamente, si esa línea, la quitas el comentario y comentas la otra, la que devuelve el vector de 37 elementos, el bucle funciona sin problemas... > head(mtzbin) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [1,] 0.002626719 0.004978632 0.005201255 0.006462926 0.006391686 0.002353819 0.004419175 0.004785744 0.006434316 [2,] 0.002689092 0.006981814 0.005856663 0.004714338 0.003580492 0.006443308 0.004419175 0.002689092 0.004301845 [3,] 0.002297961 0.003883366 0.003086845 0.006462926 0.005394031 0.004988292 0.006060432 0.004399715 0.003851898 [4,] 0.003159180 0.006187438 0.005635778 0.005556810 0.005394031 0.005346379 0.007985787 0.004399715 0.003851898 [5,] 0.002433220 0.005210141 0.003725039 0.005128456 0.006921837 0.003548008 0.002245950 0.004003866 0.003379612 [6,] 0.003379612 0.004978632 0.003934702 0.004312628 0.004921966 0.004274360 0.006981814 0.005542097 0.003379612 [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [1,] 0.003793022 0.004350860 0.001971524 0.004148574 0.002331970 0.000000000 0.003921276 0.003526645 0.000000000 [2,] 0.004393626 0.004350860 0.003058957 0.000000000 0.003964126 0.002168110 0.007445536 0.000000000 0.000000000 .... Saludos, Carlos Ortega www.qualityexcellence.es 2017-09-09 0:33 GMT+02:00 Manuel Máquez <manuelm...@gmail.com>: > Los datos originales están Tdist.csv que adjunto, el código es: > mc <- matrix(0,39,48,byrow = T) # Matriz Cta > mp <- matrix(0,39,48,byrow = T) # Matriz Pr > ms <- matrix(0,39,48,byrow = T) # Matriz Sumas > mtzbin <- matrix(0,39,48,byrow = T) # Matriz Binom > vec <- 0 # Valor temporal > dt <- read.csv('Tdist.csv', header = F) # Datos > lg <- 0 # Inicial > lg <- length(dt$V1) # Valor longitud > for(i in 1:lg) { # Registro > for(j in 1:39) { # Elemento > da <- dt[i ,j] # Dato > if(da == 0) {next > }else{ > mc[j, da] <- mc[j, da] + 1 > ms[j, da] <- ms[j, da] + da > it <- da/mc[j, da] > mp[j, da] <- it > } > } > } > sma <- rowSums(ms, 1) > sr <- max(sma) > write.csv(ms, file = 'dato.csv') > datIn <- read.table('dato.csv', sep = ',', as.is = T) > for(i in 1:39) { > for(j in 1:48) { > vec <- datIn[i, j] > # mtzbin[i, j] <- ((vec/sma[j])^vec)*((1- vec/sma[j])^(sma[j]-vec))* > choose((sr-1),(vec-1)) > mtzbin[i, j] <- ((vec/sma)^vec)*((1-vec/sma)^( > sma-vec))*choose((sr-1),(vec-1)) > } > } > Se trata de leer los datos por medio de la primera parte del código, para > después construir una tabla de probabilidad binomial negativa, vía la > segunda parte del mismo. > Esa primera parte da por resultado 'dato.csv' que también adjunto. > Carlos, nuevamente muchas gracias. > Atentamente; > *MANOLO MÁRQUEZ P.* > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es