Tôi cần tính giá trị trung bình và phương sai của một tập hợp con của một véc-tơ. Hãy để x
là véc tơ và y
là chỉ báo cho dù quan sát có nằm trong tập con hay không. Đó là hiệu quả hơn:Cách hiệu quả nhất để đặt véc tơ vectơ
sub.mean <- mean(x[y])
sub.var <- var(x[y])
hoặc
sub <- x[y]
sub.mean <- mean(sub)
sub.var <- var(sub)
sub <- NULL
Cách tiếp cận đầu tiên không tạo ra một đối tượng mới một cách rõ ràng; nhưng thực hiện các cuộc gọi đến mean
và var
thực hiện điều đó một cách ngầm định? Hay họ làm việc trên vectơ gốc như được lưu trữ?
Thứ hai nhanh hơn bởi vì nó không phải thực hiện việc thuê bao hai lần?
Tôi lo ngại về tốc độ và khả năng quản lý bộ nhớ cho các tập dữ liệu lớn.
Nếu bạn lo lắng về việc làm việc với các tập dữ liệu thực sự lớn, thì bạn sẽ phải di chuyển ra khỏi R (hoặc thực hiện nhiều mẫu). Điều đó sang một bên, tại sao không chuẩn cho hai phương pháp tiếp cận? –
@JackManey: Điều đó không đúng (hoặc mang tính xây dựng), đặc biệt là vì bạn không biết bộ dữ liệu "lớn" của người dùng lớn đến mức nào. –
@JackManey, Với các gói 'ff' và 'ffbase' (và các gói dữ liệu lớn khác), R mã nguồn mở thuần túy có thể khá có khả năng xử lý các tập dữ liệu rất lớn với hiệu quả và tốc độ. Cũng có bằng chứng từ những người Revolutions Analytics rằng R có thể được mở rộng để cung cấp hiệu suất tốt hơn SAS cho công việc "dữ liệu lớn". R không nhất thiết là một chai cổ, mặc dù các gói cơ sở * sẽ * sụp đổ dưới các tập dữ liệu lớn. – Dinre