2012-10-07 22 views
36

Tôi sẽ thực hiện một số phân tích logfile trong R (trừ khi tôi không thể làm điều đó trong R), và tôi hiểu rằng dữ liệu của tôi cần phải phù hợp với RAM (trừ khi tôi sử dụng một số loại sửa chữa như một giao diện cho một keyval cửa hàng, có thể?). Vì vậy, tôi tự hỏi làm thế nào để nói trước thời gian bao nhiêu phòng dữ liệu của tôi sẽ mất trong RAM, và liệu tôi sẽ có đủ. Tôi biết tôi có bao nhiêu RAM (không phải một lượng lớn - 3GB dưới XP), và tôi biết có bao nhiêu hàng và cols logfile của tôi sẽ kết thúc và dữ liệu nào mà các mục col phải là (có lẽ tôi cần kiểm tra nó đọc).Làm cách nào để biết khi nào tập dữ liệu của tôi trong R sẽ quá lớn?

Làm cách nào để đưa điều này lại với nhau thành quyết định go/nogo để thực hiện phân tích trong R? (Có lẽ R cần để có thể có một số RAM để thực hiện các thao tác, cũng như giữ dữ liệu!) Đầu ra yêu cầu ngay lập tức của tôi là một loạt các số liệu thống kê, tần số, dự phòng, v.v ... trình phân tích cú pháp/tabulator sẽ cung cấp cho tôi đầu ra tôi cần ngắn hạn, nhưng tôi cũng muốn chơi xung quanh với nhiều cách tiếp cận khác nhau cho dữ liệu này như là bước tiếp theo, vì vậy tôi đang xem xét tính khả thi của việc sử dụng R.

Tôi đã xem rất nhiều lời khuyên hữu ích về các tập dữ liệu lớn trong R ở đây, mà tôi đã đọc và sẽ đọc lại, nhưng bây giờ tôi muốn hiểu rõ hơn làm thế nào để tìm ra liệu tôi có nên (a) đến đó, (b) đến đó nhưng mong đợi phải làm một số công cụ bổ sung để làm cho nó dễ quản lý, hoặc (c) chạy trốn trước khi quá muộn và làm điều gì đó trong một số ngôn ngữ/môi trường khác (đề xuất chào mừng ...!). cảm ơn!

Trả lời

41

R rất thích hợp cho các tập dữ liệu lớn, sử dụng các giải pháp ngoài hộp như bigmemory hoặc ff package (đặc biệt là read.csv.ffdf) hoặc xử lý nội dung của bạn theo khối bằng tập lệnh của riêng bạn. Trong hầu như tất cả các trường hợp, một chương trình nhỏ làm cho việc xử lý các tập dữ liệu lớn (>> bộ nhớ, nói 100 Gb) rất có thể. Làm loại lập trình này bạn sẽ mất một thời gian để học (tôi không biết trình độ của bạn), nhưng làm cho bạn thực sự linh hoạt. Nếu đây là tách trà của bạn, hoặc nếu bạn cần chạy tùy thuộc vào thời gian bạn muốn đầu tư vào việc học những kỹ năng này. Nhưng một khi bạn có chúng, chúng sẽ làm cho cuộc sống của bạn trở thành một nhà phân tích dữ liệu dễ dàng hơn nhiều.

Về phân tích logfiles, tôi biết rằng các trang thống kê được tạo từ Call of Duty 4 (máy tính nhiều người chơi) hoạt động bằng cách phân tích cú pháp tệp nhật ký lặp lại thành cơ sở dữ liệu và sau đó truy lục số liệu thống kê cho mỗi người dùng từ cơ sở dữ liệu. Xem here để biết ví dụ về giao diện. Cách tiếp cận lặp (theo khối) có nghĩa là kích thước logfile (gần như) không giới hạn. Tuy nhiên, nhận được hiệu suất tốt không phải là tầm thường.

Rất nhiều thứ bạn có thể làm trong R, bạn có thể làm bằng Python hoặc Matlab, thậm chí là C++ hoặc Fortran. Nhưng chỉ khi công cụ đó có hỗ trợ out-of-the-box cho những gì bạn muốn, tôi có thể thấy một lợi thế khác biệt của công cụ đó trên R. Để xử lý dữ liệu lớn, hãy xem the HPC Task view. Xem thêm câu trả lời trước của min cho reading a very large text file in chunks. Các liên kết khác liên quan mà có thể là thú vị dành cho bạn:

Về vấn đề để lựa chọn R hoặc một số công cụ khác, tôi muốn nói nếu nó đủ tốt cho Google nó là đủ tốt cho tôi;).

+1

Lời khuyên hữu ích về các vấn đề liên quan, cảm ơn Paul. Tái định cỡ công việc q Tôi có một câu trả lời rất cụ thể về quora, đó là quy tắc của ngón tay cái mà mem cần = datasetsize * 4 hoặc 5: [link] (http://www.quora.com/R-software/How -can-I-tell-khi-my-dataset-in-R-đang-đi-to-be-quá lớn) –

+5

Việc đăng vấn đề của bạn không được khuyến khích ... –

+0

Ngoài ra, nếu điều này trả lời câu hỏi của bạn nó là phong tục để đánh dấu vào dấu kiểm màu xanh lá cây như một dấu hiệu cho thấy câu hỏi này đã được asnwered. –

Các vấn đề liên quan