Nếu bạn không muốn trả hàng nghìn đô la cho cuộc cách mạng R để bạn có thể tải/phân tích dữ liệu của mình trong một lần, sớm hay muộn, bạn cần tìm ra cách để lấy mẫu dữ liệu.
Và bước đó là dễ dàng hơn để xảy ra bên ngoài R.
(1) Linux Shell:
Giả sử dữ liệu của bạn rơi vào một định dạng phù hợp. Mỗi hàng là một bản ghi. Bạn có thể làm:
sort -R data | head -n 1000 >data.sample
này sẽ ngẫu nhiên sắp xếp tất cả các hàng và nhận được 1000 hàng đầu tiên vào một file riêng biệt - data.sample
(2) Nếu dữ liệu không phải là đủ nhỏ để phù hợp với bộ nhớ .
Ngoài ra còn có giải pháp để sử dụng cơ sở dữ liệu để lưu trữ dữ liệu. Ví dụ, tôi có nhiều bảng được lưu trữ trong cơ sở dữ liệu MySQL trong một định dạng bảng đẹp. Tôi có thể làm mẫu bằng cách thực hiện:
select * from tablename order by rand() limit 1000
Bạn có thể dễ dàng giao tiếp giữa MySQL và R bằng RMySQL và bạn có thể lập chỉ mục cột để đảm bảo tốc độ truy vấn. Ngoài ra, bạn có thể xác minh độ lệch trung bình hoặc chuẩn của toàn bộ tập dữ liệu so với mẫu của bạn nếu bạn muốn xem xét sức mạnh của cơ sở dữ liệu.
Đây là hai cách được sử dụng phổ biến nhất dựa trên kinh nghiệm của tôi để xử lý dữ liệu 'lớn'.
Nguồn
2013-11-24 16:13:03
Xem ví dụ 6e trên trang chủ sqldf: http://sqldf.googlecode.com để có giải pháp một dòng. –
@ G.Gothendieck: Đánh giá từ người quản lý công việc của tôi toàn bộ tập tin được tải vào RAM – Raffael
Vâng, tôi đã suy nghĩ về cách nó có thể hoạt động trong R. Điều tôi muốn nói với R để chọn lọc read.csv các hàng nhất định của một tệp csv. – Anton