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.*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170908/98915176/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Tdist.csv
Type: text/csv
Size: 60123 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170908/98915176/attachment-0002.csv>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: dato.csv
Type: text/csv
Size: 4975 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170908/98915176/attachment-0003.csv>
[R-es] Error lectura
2 messages · Manuel Máquez, Carlos Ortega
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 <manuelmx11 en 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 en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]