MVE: これはデータ集合とする:自動化回帰
data <- data.frame(year = rep(seq(1966,2015,1), 8),
county = c(rep('prva', 50), rep('druga', 50), rep('treća', 50), rep('četvrta', 50),
rep('peta', 50), rep('šesta', 50), rep('sedma', 50), rep('osma', 50)),
crime1 = runif(400), crime2 = runif(400), crime3 = runif(400),
uvar1 = runif(400), uvar2 = runif(400), uvar3 = runif(400),
var1 = runif(400), var2 = runif(400), var3 = runif(400), var4 = runif(400), var5 = runif(400))
はのはcrime1,2と3は、特定の従属変数であるとしましょう。 uvar1,2および3は特定の独立変数です。 var1,2などは他の共変量です。私がしようとしているのは、回帰を自動化することです。
つまり、私はこのコードの結果を取得したい:
plm(log(crime1) = log(univar1) + log(var1) + log(var2) + log(var3) + log(var4), model = 'within', effect = 'twoways', data = data)
plm(log(crime2) = log(univar2) + log(var1) + log(var2) + log(var3) + log(var4), model = 'within', effect = 'twoways', data = data)
など。推定モデルごとに20行のコードを書くことはありません。同様の質問を見ることによって
、これは限り私が来るだろとおりです。確かに私の従属変数のために役立ちますが、私はこれらの推定のそれぞれにおける特定の独立変数を含める方法を見つけ出すことはできません
crime <- c('crime1', 'crime2', 'crime3')
plm.results <- lapply(data[, crime], function(y) plm(y ~ var1 + var2 + var3 + var4,
model = 'within', effect ='twoways', data = data))
。もう一度明確にするために、univar1が最初の回帰に入るようにしたいが、残りの部分には入れない。
私が探していたものです。本当にありがとう! – Astronaut
これは完全に機能しますが、ここでは正確に何をしたのか理解したいと思っています。この部分は苦労しています:indepVars2 = laply(function(x、y)paste(x、y、sep = "+")、 (colnames(data)[grepl( "^ v"、colnames(data))]、fn_appendLog))この部分が何をしているのか詳しく教えてください。 – Astronaut
'Reduce'と' lapply'を含む手順についていくつかの説明を追加しましたが、これで十分であるかどうか教えてください。 – OdeToMyFiddle