Buenos dias Fernando,

Si eliminas sep = " "  de scan(), te ahorras las dos lineas siguientes y el
resultado es el mismo:

> x <- scan(file = "test.txt")
Read 99 items
> matrix(x, ncol = 11, byrow = TRUE)

Un saludo,
Jorge.-



2013/2/23 Fernando Macedo <fermace@gmail.com>

> Con algunas modificaciones el código de Marcelino funciona correctamente:
>
> ##########################################################3
>
> datos= scan(file="ejemplo.txt" , sep=" ")
> datos.pre=subset(datos, is.na(datos)==F)
> datos.fin= as.data.frame(matrix(datos.pre, nc=11, byrow=T)[,-c(1:2)])
> head(datos.fin)
>
> #################################################
>
> Adjunto un ejemplo de archivo tal cual sale del software usado.
>
> Saludos
>
> Fernando
>
>
>
>
> El 22 de febrero de 2013 18:32, Fernando Macedo <fermace@gmail.com>escribió:
>
> Reenvío porque no había mandado a toda la lista.
>>
>> Buenas, estoy acá con Rodrigo, puesto que somos colegas aunque trabajemos
>> en cosas diferentes.
>>
>> La solución que aportó Carlos funciona. Todavía no he leído el código
>> completamente para ver lo que hace cada función, pero me llamó la atención
>> que funcionase directamente con el archivo original que sale del programa
>> en cuestión, ya que es levemente diferente a los que colocó Rodrigo.
>>
>>    50050       9
>>
>>   0.1576E-01  0.2021      0.3830E-02  0.1846      0.4018E-02  0.8251E-03
>> 0.8805E-01
>>   0.8347E-02   1.028
>>    50100       9
>>   0.1417E-01  0.3379      0.3223E-02  0.8510E-01  0.4129E-02  0.3190E-02
>> 0.8401E-01
>>   0.9298E-02  0.9365
>>    50150       9
>>
>>   0.1357E-01  0.3061      0.3747E-02  0.1077      0.3989E-02  0.4462E-02
>> 0.8564E-01
>>   0.9126E-02  0.9451
>>
>>
>> Los "50xxx      9"  son respectivamente numero de iteración y columna
>> (que no son necesarios luego para posteriores análisis) y el resultado que
>> devuelve el código de Carlos es justamente un data.frame sin esas dos
>> columnas.
>>
>> Yo había solucionado pero con previo pasaje por alguna planilla para
>> guardarla con algún separador.
>>
>> Luego lo levantas en R (a mi me gusta RStudio) y :
>>
>> ##############################
>> ######################
>> b=as.vector(t(datos.ini)) # transpongo y transformo en vector el
>> data.frame previamente importado
>>
>> c=subset(b,is.na(b)==F) # Elimino nos NA (que se generan en el
>> tratamiento previo de una planilla de cálculo)
>>
>> d=matrix(c,4000,11, byrow=T) # sabiendo que son 4000 las líneas lo paso a
>> una matriz
>>
>> datos.fin=as.data.frame(d[,-c(1:2)]) # quito las dos primeras columnas
>> (iteración y nº de columnas) que no son interesantes
>>
>> ##########################################################
>>
>> Obviamente es más particular para el problema específico presentado y sin
>> dudas es preferible la opción presentada por Carlos.
>>
>> Saludos y gracias!
>>
>>
>> Fernando
>>
>>
>> El 22 de febrero de 2013 17:26, Carlos Ortega <cof@qualityexcellence.es>escribió:
>>
>>> Hola,
>>>
>>>
>>> Mira si este código te funciona:
>>>
>>>
>>> ###############################################################
>>> > dat.in <- readLines("rod.txt", n=-1)* #grabé las líneas en un fichero
>>> al
>>> estilo de lo que tendrás*
>>> > dat.in
>>> [1] "0.1576E-01  0.2021      0.3830E-02  0.1846      0.4018E-02
>>>  0.8251E-03
>>> 0.8805E-01"
>>> [2] "  0.8347E-02   1.028"
>>>
>>> [3] " 0.1357E-01  0.3061      0.3747E-02  0.1077      0.3989E-02
>>>  0.4462E-02 0.8564E-01"
>>> [4] "  0.9126E-02  0.9451"
>>>
>>> > library(stringr)
>>> > dat.end <- str_trim(dat.in)* #Quito los espacios en blanco al
>>> principio y
>>> final de las líneas*
>>> > dat.end
>>> [1] "0.1576E-01  0.2021      0.3830E-02  0.1846      0.4018E-02
>>>  0.8251E-03
>>> 0.8805E-01"
>>> [2] "0.8347E-02   1.028"
>>>
>>> [3] "0.1357E-01  0.3061      0.3747E-02  0.1077      0.3989E-02
>>>  0.4462E-02
>>> 0.8564E-01"
>>> [4] "0.9126E-02  0.9451"
>>>
>>> >
>>> > j<-0
>>> > dat.gd <- 0
>>> > for(i in 1:length(dat.end)) {
>>> +
>>> +    if( length(unlist(str_split(dat.end[i], " "))) > 10 ) {
>>> +     j <- j+1
>>> +     dat.gd[j] <- paste(dat.end[i], dat.end[i+1], sep= " ")
>>> +    } else { next }
>>> + }
>>> >
>>> >
>>> > t.con<-textConnection(dat.gd)
>>> > dat.fin<-read.table(t.con, as.is=T)
>>> > close(t.con)
>>> >
>>> > dat.fin
>>>        V1     V2       V3     V4       V5        V6      V7       V8
>>> V9
>>> 1 0.01576 0.2021 0.003830 0.1846 0.004018 0.0008251 0.08805 0.008347
>>> 1.0280
>>> 2 0.01357 0.3061 0.003747 0.1077 0.003989 0.0044620 0.08564 0.009126
>>> 0.9451
>>> #######################################################################
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>>
>>> El 22 de febrero de 2013 17:33, Marcuzzi, Javier Ruben <
>>> javier.ruben.marcuzzi@gmail.com> escribió:
>>>
>>> > Rod López
>>> >
>>> > Lo que usted envía si no entiendo mal no es un problema, ¿si cambia a
>>> un
>>> > monitor grande se soluciona automáticamente?, ¿que posibilidad es que
>>> > todo es una sola línea pero al visualizarla aparecen dos? O entendí
>>> todo
>>> > mal.
>>> >
>>> > No se como es BOA, pero en gibbs luego de tener los resultados, yo supe
>>> > utilizar as.data.frame, y continuar sin problemas.
>>> >
>>> > Javier Marcuzzi
>>> >
>>> > On vie, 2013-02-22 at 14:21 -0200, rod lopez wrote:
>>> > > BOA,
>>> >
>>> > _______________________________________________
>>> > 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
>>>
>>>
>>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

	[[alternative HTML version deleted]]

