a と b がデータ フレームで、a の個々の値を b の値に回帰したい場合は、それらをベクトルに変換する必要があります。例えば:
> lm(as.vector(as.matrix(a))~as.vector(as.matrix(b)))
Call:
lm(formula = as.vector(as.matrix(a)) ~ as.vector(as.matrix(b)))
Coefficients:
(Intercept) as.vector(as.matrix(b))
8.418239 -0.005241
欠損データはデフォルトで削除されます - help(lm) と na.action パラメータを参照してください。lm オブジェクトの summary メソッドは、削除された観測について教えてくれます。
もちろん、空間データに存在する可能性が高い空間相関を無視すると、パラメーター推定値からの推論がまったく間違っていることになります。残差をマッピングします。そして、空間統計に関する良い本を読んでください...
[編集: ああ、データ フレームはすべて数字でなければなりません。そうしないと、全体が文字に変換されてしまいます...まあ、誰にもわかりません...]
編集:
データ フレームからベクトルを取得する別の方法は、'unlist' を使用することです。
> a=data.frame(matrix(runif(16),4,4))
> b=data.frame(matrix(runif(16),4,4))
> lm(a~b)
Error in model.frame.default(formula = a ~ b, drop.unused.levels = TRUE) :
invalid type (list) for variable 'a'
> lm(unlist(a)~unlist(b))
Call:
lm(formula = unlist(a) ~ unlist(b))
Coefficients:
(Intercept) unlist(b)
0.6488 -0.3137
私は前に data.matrix を見たことがありません、thx Gavin。