【发布时间】:2020-10-09 02:33:05
【问题描述】:
我的桌子有点像这样:
date factor1 factor2 factor3
1973-01-31 3.112309 1.011383 NA
1973-02-28 2.120466 11.021701 NA
1973-03-31 1.125156 0.030822 1.011383
1973-04-30 11.135342 1.067682 1.067682
1973-05-31 NA -1.069136 1.071959
1973-06-30 1.139889 1.071959 1.034
我正在尝试使用 NeweyWest 方法计算 t 值来检验每列的平均值等于 0 的假设。
coeftest(lm(data~1), vcov = NeweyWest(lm(data~1), lag = 6, prewhite = F, adjust = T))
但是,我总是收到错误代码:
Error in dimnames(x) <- dn :
length of 'dimnames' [1] not equal to array extent
我很确定这是由于我的表中的 NA。我尝试使用lm 函数的na.action。然而,这并没有奏效。我可以单独计算每列的 t 值,但我正在寻找一种解决方案来一次计算整个表的 t 值,因为它是一个巨大的表。有没有人有想法解决我的问题?我非常感谢每一个提示。
【问题讨论】:
-
也可能是您在函数需要向量时尝试传递数据帧。您可能需要使用 apply 函数才能使其工作。
-
表格为
xts格式。我可以使用函数coeftest(lm(as.integer(data$factor1)~1), vcov = NeweyWest(lm(as.integer(data$factor1)~1), lag = 6, prewhite = F, adjust = T))计算一列的 t 值是否有任何机会使用一个函数为整个表计算这个值?