Discussion:
[R-es] Construcción de archivo de texto
Jorge I Velez
2018-07-10 09:31:16 UTC
Permalink
Hola a todos,

A partir de los siguientes datos:

d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L, 1L),
id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother = c(3L,
0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names = c("1",
"2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` = structure(list(
ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother = c(0L,
0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
"44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54",
"55"), class = "data.frame"))
d

estoy interesado en obtener un archivo de texto "out.txt" con la siguiente
estructura:


pedigree: 1
ped id father mother sex affected
1 1 2 3 2 1
1 2 0 0 1 2
1 3 0 0 2 1
1 4 2 3 2 1
1 5 2 3 2 2
1 6 2 3 1 2
1 7 2 3 2 2
pedigree: 2
ped id father mother sex affected
2 201 0 0 1 1
2 202 0 0 2 NA
2 203 0 0 1 1
2 204 201 202 2 0
2 205 201 202 1 NA
2 206 201 202 2 1
2 207 201 202 2 1
2 208 201 202 2 0
2 209 0 0 1 0
2 210 203 204 1 0
2 211 203 204 1 0
2 212 209 208 2 0
2 213 209 208 1 0
2 214 209 208 1 1


La idea es relativamente simple: guardar cada data.frame de "d" sin row
labels y con el encabezado "pedigree: " seguido del número en la columna
"ped".

Alguna idea? Por supuesto esto es una versión muy reducida del problema
real.

Muchísimas gracias por su ayuda.

Saludos cordiales,
Jorge.-

[[alternative HTML version deleted]]
Marcelino de la Cruz Rot
2018-07-10 10:13:36 UTC
Permalink
Hola. A ver esto, qué tal:


for (i in 1:length(d)){
     cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
     print(d[[i]],row.names=F)

}

Saludos,

Marcelino
Post by Jorge I Velez
Hola a todos,
d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L, 1L),
id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother = c(3L,
0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names = c("1",
"2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` = structure(list(
ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother = c(0L,
0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
"44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54",
"55"), class = "data.frame"))
d
estoy interesado en obtener un archivo de texto "out.txt" con la siguiente
pedigree: 1
ped id father mother sex affected
1 1 2 3 2 1
1 2 0 0 1 2
1 3 0 0 2 1
1 4 2 3 2 1
1 5 2 3 2 2
1 6 2 3 1 2
1 7 2 3 2 2
pedigree: 2
ped id father mother sex affected
2 201 0 0 1 1
2 202 0 0 2 NA
2 203 0 0 1 1
2 204 201 202 2 0
2 205 201 202 1 NA
2 206 201 202 2 1
2 207 201 202 2 1
2 208 201 202 2 0
2 209 0 0 1 0
2 210 203 204 1 0
2 211 203 204 1 0
2 212 209 208 2 0
2 213 209 208 1 0
2 214 209 208 1 1
La idea es relativamente simple: guardar cada data.frame de "d" sin row
labels y con el encabezado "pedigree: " seguido del número en la columna
"ped".
Alguna idea? Por supuesto esto es una versión muy reducida del problema
real.
Muchísimas gracias por su ayuda.
Saludos cordiales,
Jorge.-
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
.
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
Jorge I Velez
2018-07-10 13:58:10 UTC
Permalink
Gracias, Marcelino. Alguna idea sobre cómo almacenarlo en un archivo de
texto?
Saludos,
Jorge.-



On Tue, Jul 10, 2018 at 5:13 AM Marcelino de la Cruz Rot <
Post by Marcelino de la Cruz Rot
for (i in 1:length(d)){
cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
print(d[[i]],row.names=F)
}
Saludos,
Marcelino
Post by Jorge I Velez
Hola a todos,
d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L, 1L),
id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother = c(3L,
0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names = c("1",
"2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` =
structure(list(
Post by Jorge I Velez
ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother = c(0L,
0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
"44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54",
"55"), class = "data.frame"))
d
estoy interesado en obtener un archivo de texto "out.txt" con la
siguiente
Post by Jorge I Velez
pedigree: 1
ped id father mother sex affected
1 1 2 3 2 1
1 2 0 0 1 2
1 3 0 0 2 1
1 4 2 3 2 1
1 5 2 3 2 2
1 6 2 3 1 2
1 7 2 3 2 2
pedigree: 2
ped id father mother sex affected
2 201 0 0 1 1
2 202 0 0 2 NA
2 203 0 0 1 1
2 204 201 202 2 0
2 205 201 202 1 NA
2 206 201 202 2 1
2 207 201 202 2 1
2 208 201 202 2 0
2 209 0 0 1 0
2 210 203 204 1 0
2 211 203 204 1 0
2 212 209 208 2 0
2 213 209 208 1 0
2 214 209 208 1 1
La idea es relativamente simple: guardar cada data.frame de "d" sin row
labels y con el encabezado "pedigree: " seguido del número en la columna
"ped".
Alguna idea? Por supuesto esto es una versión muy reducida del problema
real.
Muchísimas gracias por su ayuda.
Saludos cordiales,
Jorge.-
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
.
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
[[alternative HTML version deleted]]
Javier Marcuzzi
2018-07-10 14:51:30 UTC
Permalink
Estimado Jorge I Velez

Yo lo guardaría en json, porque si es txt habría que encontrar los
"encabezados", cosa que en json están ubicados en el archivo y al procesar
los reconoce, pero el inconveniente es un archivo más grande.

Javier Rubén Marcuzzi
Post by Jorge I Velez
Gracias, Marcelino. Alguna idea sobre cómo almacenarlo en un archivo de
texto?
Saludos,
Jorge.-
On Tue, Jul 10, 2018 at 5:13 AM Marcelino de la Cruz Rot <
Post by Marcelino de la Cruz Rot
for (i in 1:length(d)){
cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
print(d[[i]],row.names=F)
}
Saludos,
Marcelino
Post by Jorge I Velez
Hola a todos,
d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L, 1L),
id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother = c(3L,
0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names = c("1",
"2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` =
structure(list(
Post by Jorge I Velez
ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother = c(0L,
0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
"44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54",
"55"), class = "data.frame"))
d
estoy interesado en obtener un archivo de texto "out.txt" con la
siguiente
Post by Jorge I Velez
pedigree: 1
ped id father mother sex affected
1 1 2 3 2 1
1 2 0 0 1 2
1 3 0 0 2 1
1 4 2 3 2 1
1 5 2 3 2 2
1 6 2 3 1 2
1 7 2 3 2 2
pedigree: 2
ped id father mother sex affected
2 201 0 0 1 1
2 202 0 0 2 NA
2 203 0 0 1 1
2 204 201 202 2 0
2 205 201 202 1 NA
2 206 201 202 2 1
2 207 201 202 2 1
2 208 201 202 2 0
2 209 0 0 1 0
2 210 203 204 1 0
2 211 203 204 1 0
2 212 209 208 2 0
2 213 209 208 1 0
2 214 209 208 1 1
La idea es relativamente simple: guardar cada data.frame de "d" sin
row
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
labels y con el encabezado "pedigree: " seguido del número en la
columna
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
"ped".
Alguna idea? Por supuesto esto es una versión muy reducida del
problema
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
real.
Muchísimas gracias por su ayuda.
Saludos cordiales,
Jorge.-
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
.
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Marcelino de la Cruz Rot
2018-07-10 15:39:32 UTC
Permalink
O así, también:


file="datos.txt"

for (i in 1:length(d)){
    di<-d[[i]]
    nc<-ncol(di)

      write(paste("Pedigree: ",  unique(di$ped)),file=file, append=TRUE)
      write(colnames(di),file=file, sep = "\t", ncolumns=nc, append=TRUE)
      write(t(as.matrix(di)), file=file, sep = "\t", ncolumns=nc,
append=TRUE)
}


Saludos,
Hola.
cat(file='probando.txt')
for (i in 1:length(d)){
      cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"),
file='probando.txt', append=T)
      capture.output(print(d[[i]],row.names=F),
file='probando.txt', append=T)
}
Se podría hacer.
Saludos.
On Tue, Jul 10, 2018 at 9:58 AM Jorge I Velez
Gracias, Marcelino.  Alguna idea sobre cómo almacenarlo en un
archivo de
texto?
Saludos,
Jorge.-
On Tue, Jul 10, 2018 at 5:13 AM Marcelino de la Cruz Rot <
Post by Marcelino de la Cruz Rot
for (i in 1:length(d)){
       cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
       print(d[[i]],row.names=F)
}
Saludos,
Marcelino
Post by Jorge I Velez
Hola a todos,
d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L,
1L),
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
      id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother
= c(3L,
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
      0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
      2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names
= c("1",
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
"2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` =
structure(list(
Post by Jorge I Velez
      ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
      2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
      201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother = c(0L,
      0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
      208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
      1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
      1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
"44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54",
"55"), class = "data.frame"))
d
estoy interesado en obtener un archivo de texto "out.txt" con la
siguiente
Post by Jorge I Velez
pedigree: 1
ped id father mother sex affected
    1  1      2      3   2        1
    1  2      0      0   1        2
    1  3      0      0   2        1
    1  4      2      3   2        1
    1  5      2      3   2        2
    1  6      2      3   1        2
    1  7      2      3   2        2
pedigree: 2
ped  id father mother sex affected
    2 201      0      0   1        1
    2 202      0      0   2       NA
    2 203      0      0   1        1
    2 204    201    202   2        0
    2 205    201    202   1       NA
    2 206    201    202   2        1
    2 207    201    202   2        1
    2 208    201    202   2        0
    2 209      0      0   1        0
    2 210    203    204   1        0
    2 211    203    204   1        0
    2 212    209    208   2        0
    2 213    209    208   1        0
    2 214    209    208   1        1
La idea es relativamente simple:  guardar cada data.frame de
"d" sin row
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
labels y con el encabezado "pedigree: " seguido del número en
la columna
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
"ped".
Alguna idea?  Por supuesto esto es una versión muy reducida
del problema
Post by Marcelino de la Cruz Rot
Post by Jorge I Velez
real.
Muchísimas gracias por su ayuda.
Saludos cordiales,
Jorge.-
       [[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
.
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
        [[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
«...homines autem hominum causa esse generatos...»
Cicero
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
Marcelino de la Cruz Rot
2018-07-10 15:45:27 UTC
Permalink
O más fácil aún:


sink(file="datos3.txt")
   for (i in 1:length(d)){
        cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
         print(d[[i]],row.names=F)
}
sink()
Post by Marcelino de la Cruz Rot
file="datos.txt"
for (i in 1:length(d)){
    di<-d[[i]]
    nc<-ncol(di)
      write(paste("Pedigree: ",  unique(di$ped)),file=file, append=TRUE)
      write(colnames(di),file=file, sep = "\t", ncolumns=nc, append=TRUE)
      write(t(as.matrix(di)), file=file, sep = "\t", ncolumns=nc,
append=TRUE)
}
Saludos,
Hola.
    cat(file='probando.txt')
    for (i in 1:length(d)){
          cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"),
    file='probando.txt', append=T)
          capture.output(print(d[[i]],row.names=F),
    file='probando.txt', append=T)
    }
Se podría hacer.
Saludos.
On Tue, Jul 10, 2018 at 9:58 AM Jorge I Velez
    Gracias, Marcelino.  Alguna idea sobre cómo almacenarlo en un
    archivo de
    texto?
    Saludos,
    Jorge.-
    On Tue, Jul 10, 2018 at 5:13 AM Marcelino de la Cruz Rot <
    >
    >
    > for (i in 1:length(d)){
    >       cat(paste("Pedigree: ",unique(d[[i]]$ped),"\n"))
    >       print(d[[i]],row.names=F)
    >
    > }
    >
    > Saludos,
    >
    > Marcelino
    >
    >
    >
    > > Hola a todos,
    > >
    > >
    > > d <- list(`1` = structure(list(ped = c(1L, 1L, 1L, 1L, 1L, 1L,
    1L),
    > >      id = 1:7, father = c(2L, 0L, 0L, 2L, 2L, 2L, 2L), mother
    = c(3L,
    > >      0L, 0L, 3L, 3L, 3L, 3L), sex = c(2L, 1L, 2L, 2L, 2L, 1L,
    > >      2L), affected = c(1L, 2L, 1L, 1L, 2L, 2L, 2L)), row.names
    = c("1",
    > > "2", "3", "4", "5", "6", "7"), class = "data.frame"), `2` =
    > structure(list(
    > >      ped = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
    > >      2L), id = 201:214, father = c(0L, 0L, 0L, 201L, 201L, 201L,
    > >      201L, 201L, 0L, 203L, 203L, 209L, 209L, 209L), mother =
c(0L,
    > >      0L, 0L, 202L, 202L, 202L, 202L, 202L, 0L, 204L, 204L, 208L,
    > >      208L, 208L), sex = c(1L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L,
    > >      1L, 1L, 2L, 1L, 1L), affected = c(1L, NA, 1L, 0L, NA, 1L,
    > >      1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L)), row.names = c("42", "43",
    > > "44", "45", "46", "47", "48", "49", "50", "51", "52", "53",
"54",
    > > "55"), class = "data.frame"))
    > > d
    > >
    > > estoy interesado en obtener un archivo de texto "out.txt" con la
    > siguiente
    > >
    > >
    > > pedigree: 1
    > > ped id father mother sex affected
    > >    1  1      2      3   2        1
    > >    1  2      0      0   1        2
    > >    1  3      0      0   2        1
    > >    1  4      2      3   2        1
    > >    1  5      2      3   2        2
    > >    1  6      2      3   1        2
    > >    1  7      2      3   2        2
    > > pedigree: 2
    > > ped  id father mother sex affected
    > >    2 201      0      0   1        1
    > >    2 202      0      0   2       NA
    > >    2 203      0      0   1        1
    > >    2 204    201    202   2        0
    > >    2 205    201    202   1       NA
    > >    2 206    201    202   2        1
    > >    2 207    201    202   2        1
    > >    2 208    201    202   2        0
    > >    2 209      0      0   1        0
    > >    2 210    203    204   1        0
    > >    2 211    203    204   1        0
    > >    2 212    209    208   2        0
    > >    2 213    209    208   1        0
    > >    2 214    209    208   1        1
    > >
    > >
    > > La idea es relativamente simple:  guardar cada data.frame de
    "d" sin row
    > > labels y con el encabezado "pedigree: " seguido del número en
    la columna
    > > "ped".
    > >
    > > Alguna idea?  Por supuesto esto es una versión muy reducida
    del problema
    > > real.
    > >
    > > Muchísimas gracias por su ayuda.
    > >
    > > Saludos cordiales,
    > > Jorge.-
    > >
    > >       [[alternative HTML version deleted]]
    > >
    > > _______________________________________________
    > > R-help-es mailing list
    > > https://stat.ethz.ch/mailman/listinfo/r-help-es
    > > .
    > >
    >
    > --
    > Marcelino de la Cruz Rot
    > Depto. de Biología y Geología
    > Física y Química Inorgánica
    > Universidad Rey Juan Carlos
    > Móstoles España
    >
    >
            [[alternative HTML version deleted]]
    _______________________________________________
    R-help-es mailing list
    https://stat.ethz.ch/mailman/listinfo/r-help-es
--
«...homines autem hominum causa esse generatos...»
Cicero
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
eric
2018-07-10 16:51:53 UTC
Permalink
_______________________________________________
R-help-es mailing list
R-help-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Loading...