Tôi có một vấn đề khá dễ hiểu, điều này khiến tôi đau buồn mặc dù có vài giờ vắt tóc, vì vậy tôi nghĩ tôi sẽ nhờ bạn giúp đỡ. Tôi đang tìm kiếm một cách đơn giản để trả lại một vectơ chỉ chứa phần tử cuối cùng của một số vector ban đầu.Lấy phần tử cuối cùng của một vector
Đây là vector ban đầu của tôi, 'a':
a<-c(0,0,1,0,0,1,0,0,1,0)
Tôi muốn tạo ra vector 'b', đó là chiều dài tương tự như 'a', và chỉ mang yếu tố nonmissing cuối cùng của nó. Nói cách khác,
b = (0,0,0,0,0,0,0,0,1,0)
tôi đã có thể làm điều này bằng cách xây dựng một vòng lặp chạy ngược từ cuối vector 'a' đến yếu tố đầu tiên của mình, nhưng điều đó dường decidedly thanh nha. Tôi chắc chắn có một cách tốt hơn.
Trong trường hợp bất kỳ ai tò mò, vấn đề lớn hơn: Tôi đang cố gắng thay đổi giá trị của một véc tơ trong đó nó tương ứng với phần tử nonmissing cuối cùng của một véc-tơ khác.
Cảm ơn rất nhiều vì đã giúp đỡ.
Tôi tìm thấy điều này để đánh bại tất cả: 'thay thế (0 * a, which.max (cumsum (a)), 1)'. Trực giác, tôi nghĩ rằng bất cứ thứ gì sử dụng 'cái' sẽ chậm bởi vì độ dài đầu ra không được biết trước. Không phải trường hợp với 'cumsum' hay' which.max'. – flodel