Я хочу изменить функцию lm()
базы R. В частности, я не хочу, чтобы она потерпела неудачу, если все данные NA
.В настоящий момент происходит сбой с ошибкой: 0 (non-NA) cases.
Я должен вызвать lm()
в data.table.Вовлечено больше процедур объединения и группировки.
Я написал оболочку для lm()
, но я не знаю, как получить доступ к аргументу data
.Я могу получить доступ к аргументу formula
.
LM = function(...) {
for(i in list(...)) {
print(i);
}
lm(...);
}
> mydata[Date > "May 1951", lm(dep_var ~ ind_var)$coef[2], by = Date]
Date V1
1: Jun 1951 0.56078961
2: Jul 1951 0.03058471
3: Aug 1951 0.67276820
4: Sep 1951 -0.36109541
5: Oct 1951 0.23469848
> mydata[Date > "May 1951", LM(dep_var ~ ind_var)$coef[2], by = Date]
dep_var ~ ind_var
<environment: 0x3662f3d0>
<<< repeat 4 times >>>
Date V1
1: Jun 1951 0.56078961
2: Jul 1951 0.03058471
3: Aug 1951 0.67276820
4: Sep 1951 -0.36109541
5: Oct 1951 0.23469848
Ниже приведены случаи сбоев:
> mydata[Date == "Jan 1926", LM(dep_var ~ ind_var)$coef[2], by = Date]
dep_var ~ ind_var
<environment: 0x99f14860>
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
>
> mydata[Date == "Jan 1926", lm(dep_var ~ ind_var)$coef[2], by = Date]
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
>
Все данные для "Jan 1926"
NA
и, следовательно, lm()
не удаются.Я хочу, чтобы моя функция оболочки LM()
вернула NA
для этого случая и продолжила работать.Я играл с атрибутом na.action
, но без решения.