2011-07-27 33 views
6

Quiero exportar una matriz en R (y conservar los nombres de mis filas y columnas). Cuando uso write.table o write.csv obtengo una matriz con una nueva columna. ¿Cómo puedo usar esta función?Exportar matriz en r

Gracias por su ayuda.

Respuesta

11

No veo el problema. No obtiene una nueva columna, los nombres de las filas se guardan como una primera columna en el archivo de texto. Entonces, o bien especifica la columna donde se dan los nombres de las filas en read.table, o utiliza la opción row.names=FALSE en write.table.

Demostración:

mat <- matrix(1:10,ncol=2) 
rownames(mat) <- letters[1:5] 
colnames(mat) <- LETTERS[1:2] 

mat 
write.table(mat,file="test.txt") # keeps the rownames 
read.table("test.txt",header=TRUE,row.names=1) # says first column are rownames 
unlink("test.txt") 
write.table(mat,file="test2.txt",row.names=FALSE) # drops the rownames 
read.table("test.txt",header=TRUE) 
unlink("test2.txt") 

En cualquier caso, la lectura de los archivos de ayuda te habría dicho todo esto.

+1

+1 para no copiar los archivos de ayuda –

+3

No hay que ser grosero con esto, p. Revisé los documentos, pero para write.matrix, y no tiene esa opción –

2

Supongo que con "nueva columna" te refieres a los nombres de las filas que se escriben de forma predeterminada. Para suprimirlos, configure row.names = FALSE al llamar al write.table o write.csv.

write.table    package:utils    R Documentation 

Data Output 

Description: 

    ‘write.table’ prints its required argument ‘x’ (after converting 
    it to a data frame if it is not one nor a matrix) to a file or 
    connection. 

Usage: 

    write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", 
       eol = "\n", na = "NA", dec = ".", row.names = TRUE, 
       col.names = TRUE, qmethod = c("escape", "double")) 

    write.csv(...) 
    write.csv2(...) 

... 

row.names: either a logical value indicating whether the row names of 
      ‘x’ are to be written along with ‘x’, or a character vector 
      of row names to be written. 

col.names: either a logical value indicating whether the column names 
      of ‘x’ are to be written along with ‘x’, or a character 
      vector of column names to be written. See the section on 
      ‘CSV files’ for the meaning of ‘col.names = NA’. 
+0

jeje, +1 para realmente copiar los archivos de ayuda. Pero '? Write.table' hubiera bastado ... –

Cuestiones relacionadas