Làm cách nào bạn có thể tạo tập dữ liệu SAS từ tập dữ liệu khác chỉ sử dụng các quan sát n cuối cùng từ tập dữ liệu gốc. Điều này rất dễ dàng khi bạn biết giá trị của n. Nếu tôi không biết 'n' làm thế nào điều này có thể được thực hiện?SAS - Làm cách nào để nhận các quan sát 'n' cuối cùng từ tập dữ liệu?
Trả lời
Giả sử bạn có biến macro cho biết có bao nhiêu quan sát bạn muốn. NOBS cho bạn biết số quan sát trong tập dữ liệu hiện tại mà không cần đọc toàn bộ.
%let obswant=5;
data want;
set sashelp.class nobs=obscount;
if _n_ gt (obscount-&obswant.);
run;
Sử dụng ví dụ của một biến vĩ mô của Joe để xác định số lượng các quan sát mà bạn muốn, đây là một câu trả lời:
%let obswant = 10;
data want;
do _i_=nobs-(&obswant-1) to nobs;
set have point=_i_ nobs=nobs;
output;
end;
stop; /* Needed to stop data step */
run;
này nên thực hiện tốt hơn vì nó chỉ đọc quan sát cụ thể mà bạn muốn.
Tôi tò mò về các điều kiện cho "điều này sẽ hoạt động tốt hơn". Tôi nghi ngờ đó là một số của mỗi; truy cập ngẫu nhiên không phải là nhanh như truy cập tuần tự, do đó, có một số mất mát ở đó. Có thể kiểm tra nó ra nếu tôi có một thời gian. Tôi nghi ngờ nếu bạn đang sử dụng hầu hết các quan sát rằng nó sẽ được nhanh hơn để làm điều đó tuần tự, nhưng nếu nó là một tập dữ liệu lớn và bạn muốn có một số lượng nhỏ các quan sát nó là nhanh hơn để làm điều đó ngẫu nhiên = truy cập. Làm cho tôi muốn SAS có một cách để mở một tập dữ liệu theo thứ tự ngược lại mà không cần phải sắp xếp nó trước. – Joe
@Joe Hãy tưởng tượng một tập dữ liệu với 1 triệu người bị ám ảnh và bạn muốn "cuối cùng" 10. Sử dụng kỹ thuật này, chỉ có 10 hoạt động "đầu vào" được thực hiện. Chỉ sử dụng giá trị NOBS yêu cầu 1 triệu hoạt động "đầu vào". Tùy thuộc vào cách "rộng" tập dữ liệu, sự khác biệt này có thể rất quan trọng. – BellevueBob
Phải, tôi chắc chắn thấy khả năng này nhanh hơn. Tôi tò mò tại thời điểm đó nó nhanh hơn/chậm hơn (nghĩa là kích thước của tập dữ liệu,% dữ liệu nào được kéo - 10 từ 1MM tất nhiên sẽ nhanh hơn, nhưng khoảng 500k từ 1MM?) – Joe
Vì lợi ích của đa dạng, đây là cách tiếp cận khác (không nhất thiết là một tốt hơn)
%let obswant=5;
proc sql noprint;
select nlobs-&obswant.+1 into :obscalc
from dictionary.tables
where libname='SASHELP' and upcase(memname)='CLASS';
quit;
data want;
set sashelp.class (firstobs=&obscalc.);
run;
Lưu ý: bạn muốn chỉ định định dạng khi sử dụng select..into, nếu không giá trị được định dạng là BEST8., dẫn đến lỗi lạ khi bạn chọn giá trị> = 100.000.000 (được định dạng theo ký hiệu số mũ, dẫn đến làm tròn). – Nickolay
Nếu dữ liệu quá lớn, bạn có thể không muốn đọc toàn bộ tập dữ liệu. Thay vào đó, bạn có thể thử một công trình đọc tổng số Quan sát trong tập dữ liệu trước tiên. Vì vậy, nếu bạn muốn có những quan sát cuối cùng:
data t;
input x;
datalines;
1
2
3
4
;
%let dsid=%sysfunc(open(t));
%let num=%sysfunc(attrn(&dsid,nlobs));
%let rc=%sysfunc(close(&dsid));
%let number = 2;
data tt;
set t (firstobs = %eval(&num.-&number.+1));
run;
- 1. Làm thế nào để bạn in quan sát cuối cùng của tập dữ liệu SAS?
- 2. Tôi làm cách nào để đọc tập dữ liệu SAS?
- 3. Nhận ngày sửa đổi tập tin cuối cùng của các tệp dữ liệu ứng dụng?
- 4. mysql chọn từ n hàng cuối cùng
- 5. Mở bộ dữ liệu SAS để xem từ bên trong chương trình .sas
- 6. Publish giá trị cuối cùng của một quan sát
- 7. Làm thế nào để có được các tài liệu N cuối cùng với mongoid?
- 8. Làm cách nào để tạo một Rx có thể quan sát để dừng xuất bản sự kiện khi người quan sát cuối cùng hủy đăng ký?
- 9. SAS: ghép các tập dữ liệu khác nhau trong khi vẫn giữ các tên bảng dữ liệu riêng lẻ
- 10. Xóa các ký tự N cuối cùng khỏi trường trong cơ sở dữ liệu SQL Server
- 11. Làm cách nào để giữ một danh sách chỉ các đối tượng n cuối cùng?
- 12. Làm cách nào để lặp lại các thay đổi n cuối cùng trong Vim?
- 13. Làm thế nào để cắt đầu tiên n và cột n cuối cùng?
- 14. Làm thế nào để hiển thị Không có Dữ liệu khi mảng quan sát được trống?
- 15. liên lạc với bộ dữ liệu SAS từ R
- 16. Làm cách nào để lấy trường cuối cùng trong cơ sở dữ liệu Mysql bằng PHP?
- 17. Làm cách nào để lấy đối số cuối cùng thứ hai từ tập lệnh shell?
- 18. KnockoutJS - Dải quan sát của các đối tượng quan sát
- 19. Nhận giá trị được chèn vào cuối cùng từ cơ sở dữ liệu sqlite Android
- 20. Trình ánh xạ dữ liệu + Mẫu quan sát
- 21. để đọc dòng từ tập tin trong python mà không nhận được "\ n" gắn vào cuối
- 22. Làm cách nào để liên kết các mục của TabControl với một bộ sưu tập quan sát được trong wpf?
- 23. nếu _N_ = 1 điều kiện trả về đúng ngay cả khi các thiết lập bộ dữ liệu rỗng (không quan sát) trong SAS
- 24. MySQL: Cách nhận các thay đổi của UPDATE cuối cùng
- 25. Xóa "\ n" cuối cùng khỏi văn bản
- 26. Làm thế nào để lọc Quan sát Collection Lớp Collection
- 27. Trả lại dữ liệu cho người điều phối từ người quan sát sự kiện trong Magento
- 28. Trích xuất các ký tự n cuối cùng từ một chuỗi trong R
- 29. Làm thế nào để trích xuất các hiệu ứng cố định lmer bằng cách quan sát?
- 30. Xóa N byte cuối cùng khỏi tệp
Bạn có ý gì khi không biết 'n'? Làm thế nào bạn sẽ tìm ra giá trị của 'n' - đó là biến số liệu, biến macro, tham số? – Joe