Pregunta Anexando texto en función de escritura [R]


Estoy tratando de añadir una línea en una ya existente .txt archivo. Pero mi sintaxis sobrescribe este archivo :(

   fileConn <- file( "realization1.txt" )
      write(x =as.character(max(cumsum( rnorm( 10^7)))),
            file = fileConn,
            append = TRUE, sep = " ")


      write(x =as.character(max(cumsum( rnorm( 10^7)))),
            file = fileConn,
            append = TRUE, sep = " ")
   }

   close( fileConn )

¿Alguien tiene alguna solución a esto? ¡Gracias por la ayuda!


5
2017-08-16 14:39


origen


Respuestas:


Creo que su dificultad proviene de no abrir el archivo con los atributos adecuados establecidos.

Si creas la conexión con fileConn <- file( "realization1.txt" ,open="a") , entonces todo funcionará como esperas. Básicamente, por lo que puedo decir, write (que es una envoltura para cat ) no puede agregarse a menos que la conexión del archivo se haya abierto con "agregar" permitido.


5
2017-08-16 16:55



También puedes usar writeLines, que es aproximadamente 20 veces más rápido que write. Esto hace una gran diferencia si está agregando cadenas de caracteres grandes.

sink("outfile.txt", append = T)

x <- as.character(max(cumsum( rnorm( 10^7))))
writeLines(x)

sink()

1
2017-10-01 11:23



Yo solo usaría el comando tabla de escritura

write.table(max(cumsum( rnorm( 10^7))),file="realization1.txt",append=TRUE,row.names=FALSE,col.names=FALSE)

write.table(max(cumsum( rnorm( 10^7))),file="realization1.txt",append=TRUE,row.names=FALSE,col.names=FALSE)

Encontrarás los 2 valores en el archivo 'realizaion1.txt'


0
2017-08-16 15:25