2016-02-05 142 views
0

這是R問題,而不是統計問題。R編程中lm()中因變量的類型無效

我想在R中執行一組20個獨立變量和1個因變量的多元線性迴歸。 20個獨立變量位於一個csv文件中,1個獨立變量位於另一個csv文件中。每個文件中的每一行對應於一天的一次測量。

我設法用read.csv(...)將20個獨立變量導入一個名爲「預測變量」的變量中。然後,我再次使用read.csv(...)將依賴測量導入到名爲「dependent」的(變量?)中。但是當我使用lm(依賴於〜X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 + X11 + X12 + X13 + X14 + X15 + X16 + X17 + X18 + X19 + X20)

(注:X_1,...,X20都列在該CSV文件中的預測)

我得到的錯誤標題:

Error in model.frame.default(formula = dependent ~ X1 + X2 + X3 + X4 + X5 + : invalid type (list) for variable 'dependent'

我不明白什麼會出錯?

的預測文件看起來像(但到X20)

enter image description here

和依賴CSV文件看起來像

enter image description here

+0

嘗試因變量添加爲一列數據框以及獨立變量。 –

+0

從你的錯誤的樣子,我要說的是,依賴是一個列表。如果你有一個有21列的數據框會更好:你的20個X和因變量。然後,運行迴歸會很容易。您可以查看'cbind'來追加2個數據框 – etienne

+1

向我們展示您在R中使用的數據結構(導入後)。來自excel的數據很好,但並沒有說明整個故事。有關如何呈現數據的信息,請參閱http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example(提示:'str()')。 –

回答

1

讓我們對DF一些隨機數據:

df<-replicate(5,rnorm(20)) 
names<-paste0('X',1:5) 
colnames(df)<-names 

依賴於評論已經給出,所以我們可以用cbind創建一個數據幀:

newDf<-cbind(dependent,df) 

head(newDf) 
# dependent   X1   X2   X3   X4   X5 
# 1 0.49295341 -1.728304515 0.9902622 0.6164557 0.904435464 -0.65801021 
# 2 0.04331689 0.641830028 2.3829267 0.6165678 0.002691661 0.85520221 
# 3 0.53106346 -1.529310531 0.6644159 -1.6921015 -1.176692158 1.15293623 
# 4 0.06983530 0.001683688 0.2073812 0.3687421 -1.318220727 0.27627456 
# 5 0.74574779 0.250247821 -2.2106331 0.9678592 -0.592997366 0.14410466 
# 6 0.56349179 0.563867390 2.6917140 1.2765787 0.797380501 -0.07562508 

然後,我們可以運行迴歸:

lm(dependent~.,newDf) # . selects all the other columns of newDf 

# Call: 
# lm(formula = dependent ~ ., data = newDf) 

# Coefficients: 
# (Intercept)   X1   X2   X3   X4   X5 
#  0.50522  -0.09975  -0.03040  0.06431  -0.00398  -0.09596