Я рассматриваю этот вопрос, исследуя предлагаемые решения для аналогичной проблемы; Я полагаю, что для будущей ссылки может быть полезно обновить доступный список ответов с помощью решения, использующего пакет broom
.
x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
fit = lm(y ~ x)
require(broom)
glance(fit)
>> glance(fit)
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual
1 0.5442762 0.5396729 1.502943 118.2368 1.3719e-18 2 -183.4527 372.9055 380.7508 223.6251 99
Я нашел полезную функцию glance
, поскольку она аккуратно суммирует полезные значения. В качестве дополнительного преимущества результаты сохраняются как data.frame
, что облегчает дальнейшие манипуляции:
>> class(glance(fit))
[1] "data.frame"
Произошла ошибка при копировании соответствующего элемента в список отфильтрованных данных. Вот возможное решение с использованием копии оператора распространения:
class Test {
// assuming users has some data
constructor() {
this.items = [
{ attributes: { fullName: 'toto1' } },
{ attributes: { fullName: 'toto2' } },
{ attributes: { fullName: 'tutu3' } }
];
this.filterData = [];
}
filterUser(searchTerm) {
this.filterCount = 0;
console.log('searchTerm', searchTerm);
console.log(typeof (this.items));
if (!this.items || !searchTerm) {
return this.items;
}
for (let i = 0; i < this.items.length; i++) {
if (this.items[i].attributes.fullName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1) {
this.filterData[i] = { ...this.items[i] }; // Copy full object using spread operator
this.filterCount++;
}
}
this.items = this.filterData;// I'm not able to copy data back to this.items
}
}
let test = new Test();
test.filterUser('toto');
console.log(test.items);