2011-11-23 43 views
12

thể trùng lặp:
removing specific rows from a dataframeDi chuyển hàng cụ thể từ một khung dữ liệu

Hãy nói rằng tôi có một khung dữ liệu bao gồm một số hàng, như thế này:

X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4)) 

Variable1 Variable2 
11   2 
14   3 
12   1 
15   4 

Bây giờ, giả sử tôi muốn tạo một khung dữ liệu mới trùng lặp với khung dữ liệu này, chỉ rằng tôi đang xóa ll hàng trong đó Variable1 có một giá trị số nhất định. Hãy nói rằng chúng tôi có những con số này được lưu giữ trong một vector, v

Nghĩa là, nếu v chứa các số 11 và 12, khung dữ liệu mới sẽ trông như thế này:.

Variable1 Variable2 
14   3 
15   4 

Tôi đã tìm kiếm mạng lưới trong một thời gian dài, bây giờ cố gắng tìm ra cách để làm một cái gì đó như thế này. Chủ yếu, tôi sẽ chỉ cần một số loại lệnh nói removeRow(dataframe, row) hoặc một cái gì đó như thế.

+9

Bạn đã tìm kiếm SO cho câu hỏi này chưa? Câu trả lời chắc chắn liên quan đến việc sử dụng% in% và toán tử trích xuất "[" nhưng tôi sẽ đặt tỷ lệ cược của nó đã được trả lời. Ví dụ, cái đầu tiên xuất hiện với một tìm kiếm sử dụng tiêu đề câu hỏi của bạn: http://stackoverflow.com/questions/7112872/removing-specific-rows-from-a-dataframe –

+4

Đây là một thực tế R khá phổ biến. Đây là một gợi ý, thay vì cố gắng loại bỏ các hàng bạn không muốn, hãy thử tạo một khung dữ liệu mới chứa các hàng mà bạn muốn. – Chris

+0

Bạn nên đăng một ví dụ tái sản xuất. 'dput' là bạn của bạn! – Zach

Trả lời

40
X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4)) 
> X 
    Variable1 Variable2 
1  11   2 
2  14   3 
3  12   1 
4  15   4 
> X[X$Variable1!=11 & X$Variable1!=12, ] 
    Variable1 Variable2 
2  14   3 
4  15   4 
> X[ ! X$Variable1 %in% c(11,12), ] 
    Variable1 Variable2 
2  14   3 
4  15   4 

Bạn có thể thực hiện chức năng này theo cách bạn muốn.

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