2015-03-29 22 views
7

Trong R, khi tôi chỉ chọn một cột từ một khung dữ liệu/ma trận, kết quả sẽ trở thành vectơ và mất tên cột, cách tôi có thể giữ tên cột? Ví dụ, nếu tôi chạy đoạn mã sau,Giữ tên cột khi chọn một cột từ một khung dữ liệu/ma trận trong R

x <- matrix(1,3,3) 
colnames(x) <- c("test1","test2","test3") 
x[,1] 

tôi sẽ nhận được

[1] 1 1 1 

Thực ra, tôi muốn nhận được

 test1 
[1,]  1 
[2,]  1 
[3,]  1 

Các mã sau đây cho tôi chính xác những gì tôi muốn , tuy nhiên, có cách nào dễ dàng hơn để làm điều này?

x <- matrix(1,3,3) 
colnames(x) <- c("test1","test2","test3") 
y <- as.matrix(x[,1]) 
colnames(y) <- colnames(x)[1] 
y 

Trả lời

16

Sử dụng drop luận:

> x <- matrix(1,3,3) 
> colnames(x) <- c("test1","test2","test3") 
> x[,1, drop = FALSE] 
    test1 
[1,]  1 
[2,]  1 
[3,]  1 
6

Một khả năng khác là sử dụng subset:

> subset(x, select = 1) 

    test1 
[1,]  1 
[2,]  1 
[3,]  1 
Các vấn đề liên quan