2012-08-14 39 views
6

Tôi đang tìm cách hiệu quả nhất (tức là các phím ít được nhấn) để lập chỉ mục phần tử cuối cùng của một mảng.Cách hiệu quả nhất để chọn mục kết thúc của một mảng là gì?

Sau đó, một cái gì đó giống như

a <- c(1,2,3) 
n <- length(a) 
b <- a[n] 

không nên được sử dụng, tôi muốn sử dụng chỉ một lệnh duy nhất.

Trong ví dụ trên, chúng tôi có thể sử dụng

b <- a[length(a)] 

nhưng tôi tự hỏi, nếu một cái gì đó ngắn hơn không tồn tại.

Lết Tôi muốn chọn một phần của một mảng, như

a <- seq(from = 1, to = 10, by = 1) 
b <- a[3:length(a)] 

Có cách nào ngắn hơn để làm điều đó?

Trả lời

9

Đối với trường hợp đầu tiên, bạn có thể sử dụng:

> tail(a, 1) 
[1] 3 

Không phải là thực sự đủ điều kiện như ngắn hơn.

Đối với ví dụ thứ hai

> tail(a, -2) 
[1] 3 4 5 6 7 8 9 10 

nhưng nói chung; không có gì ngắn hơn. R không có một toán tử tại chỗ hoặc cú pháp đường cho phần cuối của một vectơ hoặc mảng, theo nghĩa của cái gì đó đánh giá đến cuối mảng. Đó là những gì length() có thể được sử dụng cho.

6

Sử dụng tail() để có được những đuôi cuối của một đối tượng:

x <- 1:100 

Theo mặc định, tail() lợi nhuận 6 yếu tố ...

tail(x) 
[1] 95 96 97 98 99 100 

... nhưng bạn có thể thay đổi điều đó:

tail(x, 10) 
[1] 91 92 93 94 95 96 97 98 99 100 

Tương tự như vậy, có head() để có được những yếu tố đầu tiên:

head(x, 7) 
[1] 1 2 3 4 5 6 7 
+1

Có cách nào tốt đẹp để thực hiện công việc này trên các cột không? '? tail' nói nó lấy các hàng trong trường hợp 2D. –

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