readtableheader incomplete found r warnings readline

incomplete - Advertencia: cerrando la conexión no utilizada n



incomplete final line found by readtableheader (1)

getCommentary=function(){ Commentary=readLines(file("C://Commentary//com.txt")) return(Commentary) close(readLines) closeAllConnections() }

No tengo idea de lo que está mal con esta función. Cuando ejecuto esto en R, me sigue dando la siguiente advertencia:

Warning message: closing unused connection 5 ("C://Commentary//com.txt")


readLines() es una función, no la close() . Desea cerrar la conexión abierta por la función file() . Además, está return() antes de cerrar cualquier conexión. En cuanto a la función, las líneas después de la declaración return() no existen.

Una opción es guardar el objeto devuelto por la llamada de file() , ya que no debería cerrar todas las conexiones solo aquellas que abre su función. Aquí hay una versión sin función para ilustrar la idea:

R> cat("foobar/n", file = "foo.txt") R> con <- file("foo.txt") R> out <- readLines(con) R> out [1] "foobar" R> close(con)

Para escribir tu función, sin embargo, probablemente tomaría una dirección ligeramente diferente:

getCommentary <- function(filepath) { con <- file(filepath) on.exit(close(con)) Commentary <-readLines(con) Commentary }

Que se utiliza de la siguiente manera, con el archivo de texto creado anteriormente como un archivo de ejemplo para leer

R> getCommentary("foo.txt") [1] "foobar"

Utilicé on.exit() para que una vez que se crea con, si la función termina, por cualquier motivo, la conexión se cerrará. Si dejó esto solo para una declaración de close(con) justo antes de la última línea, por ejemplo:

Commentary <-readLines(con) close(con) Commentary }

la función podría fallar en la llamada a readLines() y terminar, por lo que la conexión no se cerraría. on.exit() dispondría que la conexión se cierre, incluso si la función termina antes.