2010-01-23 52 views
10

Trong danh sách trăn có thể được cắt lát như thế này x[4:-1] để lấy từ thứ tư đến phần tử cuối cùng.R thao tác mảng

Trong R, có thể thực hiện điều gì đó tương tự cho vectơ với x[4:length(x)] và đối với các mảng đa chiều với thứ gì đó như x[,,,,4:dim(x)[5],,,]. Đây có phải là cú pháp thanh lịch hơn cho việc cắt mảng cho một chiều cụ thể từ một phần tử ở giữa đến phần tử cuối cùng không?

Cảm ơn

+1

Trên thực tế trong python, x [4: -1] sẽ bỏ qua phần tử cuối cùng. Để bao gồm phần tử cuối cùng mà bạn chỉ cần x [4:], tương đương với thuật toán của algoriffic (1:10) [- (1: 4)] trong R. – signalseeker

+0

Ngoài ra một phần tử ở phía trước! Trong python x [4: -1] sẽ lấy thứ năm (không phải là thứ tư) cho phần tử áp chót. – John

Trả lời

19

Bạn có thể sử dụng các yếu tố thả cú pháp:

> (1:10)[-(1:4)] 
[1] 5 6 7 8 9 10 
+0

Đây chỉ là loại điều tôi đang tìm kiếm, cảm ơn! – momeara

7

Trong trường hợp bạn đang quan tâm đến việc cắt các yếu tố n cuối cùng của mảng sau đó bạn có thể sử dụng:

x[seq(length=n, from=length(x), by=-1)]