Gói data.table rất hữu ích về mặt tốc độ. Nhưng tôi đang gặp rắc rối thực sự sử dụng đầu ra từ hồi quy tuyến tính. Có một cách dễ dàng để có được đầu ra data.table được khá/hữu ích như là từ gói plyr? Dưới đây là một ví dụ. Cảm ơn bạn!Đầu ra hồi quy dữ liệu có thể xảy ra vs plyr
library('data.table');
library('plyr');
REG <- data.table(ID=c(rep('Frank',5),rep('Tony',5),rep('Ed',5)), y=rnorm(15), x=rnorm(15), z=rnorm(15));
REG;
ddply(REG, .(ID), function(x) coef(lm(y ~ x + z, data=x)));
REG[, coef(lm(y ~ x + z)), by=ID];
Ước tính hệ số có thể được xuất trong một cột duy nhất trong khi ước tính hệ số plyr/ddply được xuất trong nhiều cột được gắn nhãn độc đáo.
Tôi biết tôi có thể chạy hồi quy ba lần với data.table nhưng điều đó có vẻ thực sự không hiệu quả. Tôi có thể sai mặc dù.
REG[, Intercept=coef(lm(y ~ x + z))[1],
x =coef(lm(y ~ x + z))[2],
z =coef(lm(y ~ x + z))[3], by=ID];
Có [this] (http://stackoverflow.com/questions/11233183/grouping-in-data-table-how-to-get-more-than-1-column-of-results/11233262#11233262) từ hôm qua (xem phần bình luận thứ hai cho câu trả lời của tôi) nhưng thật tuyệt khi có bản demo này nổi bật hơn. –
Và lưu ý rằng 'list()' không phải là câu trả lời. –
Đó là lý do tại sao tôi tham chiếu bình luận;) (Chỉ cần cố gắng thể hiện từ bạn, nơi bạn có thể có cảm giác dai dẳng đó.) –