Tôi đã sử dụng SAS chuyên nghiệp được gần 5 năm rồi. Tôi đã cài đặt nó trên máy tính xách tay của mình và thường xuyên phải phân tích các bộ dữ liệu với 1.000-2.000 biến và hàng trăm nghìn quan sát.
Tôi đã tìm kiếm các lựa chọn thay thế cho SAS cho phép tôi tiến hành phân tích trên các tập dữ liệu có kích thước tương tự. Tôi tò mò những gì người khác sử dụng cho các tình huống như thế này. Đây chắc chắn không phải là "Dữ liệu lớn" theo cách được sử dụng ngày nay. Bộ dữ liệu của tôi cũng không đủ nhỏ để giữ trong bộ nhớ. Tôi cần một giải pháp có thể áp dụng thuật toán cho dữ liệu được lưu trữ trên ổ cứng. Đây là những điều tôi đã điều tra vô ích:
- R - BigMemory có thể tạo ma trận được lưu trữ ngoài bộ nhớ, nhưng các phần tử phải có cùng chế độ. Tôi làm việc với dữ liệu gần như phân chia 50/50 giữa ký tự và số. Gói FF gần hơn với những gì tôi cần, nhưng tôi không hiểu thủ tục nào tương thích với nó. Tôi nghĩ rằng sự hỗ trợ có phần hạn chế.
- Gấu trúc - Tôi đã rất vui mừng về một sự thay thế Pythonic cho R. Tuy nhiên, nó cũng phải chứa tất cả dữ liệu trong bộ nhớ.
- Revolution R - Điều này cho thấy khá nhiều hứa hẹn. Tôi có một bản sao trên máy tính ở nhà của tôi (miễn phí nếu bạn đăng ký Kaggle) và vẫn chưa thử nghiệm nó như là sự thay thế khả thi cho SAS. Nhận xét về Revolution R như một sự thay thế của SAS được đánh giá cao.
Cảm ơn
CẬP NHẬT 1
Chỉnh sửa để thêm rằng tôi đang tìm kiếm các giải pháp thực tế, thực tế mà mọi người đã sử dụng thành công. Đối với hầu hết các phần, SAS cho phép tôi chug qua các tệp lớn mà không phải lo lắng một chút về các hạn chế bộ nhớ. Tuy nhiên, SAS được triển khai, họ đã tìm ra cách làm cho việc quản lý bộ nhớ trở nên minh bạch đối với người dùng. Nhưng, với một trái tim nặng nề, tôi đã sử dụng SAS cho công việc của mình (tôi phải) và sẽ YÊU một sự thay thế FOSS cho phép tôi làm việc trên dữ liệu "lớn" mà không phải suy nghĩ quá nhiều về việc dữ liệu được đặt ở đâu thời gian cụ thể (trong bộ nhớ hoặc trên đĩa).
Những thứ gần nhất tôi gặp phải là gói FF của R và một thứ gì đó trên đường chân trời cho Python có tên là Blaze . Tuy nhiên, những vấn đề này đã tồn tại trong nhiều năm, vậy các nhà phân tích đã làm gì trong thời gian đó? Làm thế nào họ xử lý các vấn đề tương tự với giới hạn bộ nhớ? Phần lớn các giải pháp được cung cấp dường như là:
- Nhận thêm RAM - Đây không phải là một giải pháp tốt, imo. Thật dễ dàng để tìm một tập dữ liệu có thể vượt quá RAM nhưng vẫn vừa với ổ cứng. Hơn nữa, dòng công việc phải chứa tất cả các cấu trúc được tạo ra trong quá trình phân tích dữ liệu thăm dò.
- Tập hợp dữ liệu - Điều này tốt cho việc thăm dò nhưng không phải để hoàn thiện kết quả và báo cáo. Cuối cùng, bất kỳ quy trình nào được phát triển trên một tập hợp con sẽ phải được áp dụng cho toàn bộ tập dữ liệu (trong trường hợp của tôi, dù sao đi nữa).
- Chunk thông qua dữ liệu - Đây là những gì tôi muốn biết thêm từ những người thực sự thực hiện quy trình công việc này. Làm thế nào được thực hiện? Với công cụ gì? Nó có thể được thực hiện theo cách minh bạch cho người dùng không? (nghĩa là tạo một số cấu trúc dữ liệu trên đĩa và công việc khung sẽ đảm nhiệm việc phân đoạn dưới mui xe).