我试图计算一堆贝塔。不幸的是,有时候某些列都是NA
。这是一个玩具示例:
x = structure(c(0.946032318625641, -0.472255854964591, -0.570914946839299, -0.624246840976067, -0.484359645048786, 0.888922481497905, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(6L, 3L), .Dimnames = list(c("AAPL", "AXP", "BA", "CAT", "CSCO", "CVX"), c("TV", "HG", "PT")))
y = structure(c(0.0519592742218189, 0.0148741387994269, 0.0646644308305699, 0.0406382502886822, 0.0454770268265812, 0.0403287646059043), .Names = c("AAPL", "AXP", "BA", "CAT", "CSCO", "CVX"))
b = lm(y ~ x)$coefficients
我如何告诉lm
忽略这些?如果某些测试版以NA
的形式返回,我不介意。
答案 0 :(得分:3)
我猜您的主要问题是如何实现良好的对齐。看起来你正在使用循环来拟合许多线性模型。设计矩阵的维度保持固定,但不同的列可能突然消失,即在不同的迭代中变为NA。最后,你需要一个漂亮的系数矩阵,为那些消失的列填充NA。
一个简单的解决方案是用零列替换那些NA列。这样,设计矩阵是秩不足的,那些零列的系数将是NA。