2012-10-12 45 views

Trả lời

43

Bạn có thể chỉ chỉ mục và sử dụng một dấu hiệu tiêu cực để thả cột rằng:

data[,-3] 

Hoặc bạn có thể liệt kê chỉ có 2 cột đầu tiên:

data[,c("c1", "c2")] 
data[,1:2] 

Đừng quên dấu phẩy và tham chiếu các khung dữ liệu hoạt động như sau: dữ liệu [hàng, cột]

+0

Về câu cuối cùng của bạn, bạn không thực sự cần dấu phẩy khi làm việc với các khung dữ liệu, vì chúng là các danh sách. –

+0

Chắc chắn, nhưng nếu bạn định đưa ra nhận xét đó ít nhất là một ví dụ về cách không sử dụng dấu phẩy hay danh sách truy cập. – tcash21

+0

ví dụ 'x [1,2]' = 'x [[2]] [[1]]' – tcash21

67

Ngoài việc lập chỉ mục số của tcash21 nếu OP có thể đang tìm kiếm chỉ mục phủ định theo tên. Dưới đây là một vài cách tôi biết, một số là rủi ro hơn người khác sử dụng:

mtcars[, -which(names(mtcars) == "carb")] #only works on a single column 
mtcars[, names(mtcars) != "carb"]   #only works on a single column 
mtcars[, !names(mtcars) %in% c("carb", "mpg")] 
mtcars[, -match(c("carb", "mpg"), names(mtcars))] 
mtcars2 <- mtcars; mtcars2$hp <- NULL   #lost column (risky) 


library(gdata) 
remove.vars(mtcars2, names=c("mpg", "carb"), info=TRUE) 

Nói chung tôi sử dụng:

mtcars[, !names(mtcars) %in% c("carb", "mpg")] 

vì tôi cảm thấy nó an toàn và hiệu quả.

+0

Và xem http://markmail.org/message/sdg7mopk4towqbm4 để nhận xét của Brian Ripley về mtcars [, - c ("carb", "mpg")] –

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