Tất cả phụ thuộc vào thuật toán bạn cần. Nếu chúng có thể được dịch sang dạng số gia tăng (khi chỉ cần một phần nhỏ dữ liệu tại bất kỳ thời điểm nào, ví dụ như Naive Bayes, bạn có thể lưu giữ trong bộ nhớ chỉ mô hình và quan sát hiện tại đang được xử lý), thì đề xuất tốt nhất là thực hiện việc học máy từng bước, đọc các lô dữ liệu mới từ đĩa.
Tuy nhiên, nhiều thuật toán và đặc biệt là các thuật toán của chúng thực sự yêu cầu toàn bộ tập dữ liệu. Nếu kích thước của tập dữ liệu phù hợp với bạn (và giới hạn hệ thống tệp), bạn có thể sử dụng gói mmap cho phép ánh xạ tệp trên đĩa vào bộ nhớ và sử dụng nó trong chương trình. Tuy nhiên, lưu ý rằng đọc-ghi vào đĩa là tốn kém, và R đôi khi thích di chuyển dữ liệu qua lại thường xuyên. Vì vậy hãy cẩn thận.
Nếu dữ liệu của bạn không thể được lưu trữ ngay cả trên ổ đĩa cứng, bạn sẽ cần phải sử dụng các hệ thống học tập máy phân tán. Một hệ thống dựa trên R như vậy là Revolution R được thiết kế để handle các tập dữ liệu thực sự lớn. Thật không may, nó không phải là nguồn mở và chi phí khá nhiều tiền, nhưng bạn có thể cố gắng để có được free academic license. Thay vào đó, bạn có thể quan tâm đến Java dựa trên Apache Mahout - giải pháp không thanh lịch, nhưng rất hiệu quả, dựa trên Hadoop và bao gồm nhiều thuật toán quan trọng.
Hãy xem phần phụ "Dữ liệu bộ nhớ lớn và dữ liệu ngoài bộ nhớ" của [xem nhiệm vụ tính toán hiệu năng cao] (http://cran.r-project.org/web/views/HighPerformanceComputing.html) trên CRAN. [bigmemory] (http://cran.r-project.org/web/packages/bigmemory/index.html) và [ff] (http://cran.r-project.org/web/packages/ff/index .html) là hai gói phổ biến. Ngoài ra, hãy xem xét lưu trữ dữ liệu trong cơ sở dữ liệu và đọc theo các lô nhỏ hơn để phân tích. – jthetzel