2011-07-27 56 views
6

Tôi muốn xuất một ma trận trong R (và giữ tên của cả hai hàng và cột của tôi). Khi tôi sử dụng write.table hoặc write.csv tôi nhận được một ma trận với một cột mới. Làm thế nào tôi có thể sử dụng chức năng này.Ma trận xuất trong r

Cảm ơn sự giúp đỡ của bạn.

Trả lời

11

Tôi không thấy sự cố. Bạn không nhận được cột mới, tên hàng được lưu dưới dạng cột đầu tiên trong tệp văn bản. Vì vậy, bạn chỉ định cột nơi tên hàng được cung cấp trong read.table hoặc sử dụng tùy chọn row.names=FALSE trong write.table.

diễ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") 

Trong mọi trường hợp, đọc các tập tin trợ giúp sẽ nói với bạn tất cả những điều này.

+1

+1 để không sao chép các tệp trợ giúp –

+3

Không cần phải thô lỗ về điều này - ví dụ: Tôi đã kiểm tra các tài liệu, nhưng đối với write.matrix, và nó không có tùy chọn như vậy –

2

Tôi giả định rằng theo "cột mới", nghĩa là tên hàng được viết ra theo mặc định. Để chặn họ, hãy đặt row.names = FALSE khi gọi write.table hoặc 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

hehe, +1 để thực sự sao chép các tệp trợ giúp. Nhưng '? Write.table' sẽ có đủ điều kiện ... –

Các vấn đề liên quan