2015-09-04 37 views
0

我正在嘗試一個data.frame的兩個子集列的lm。這裏是我用mtcars的例子。怎麼了?感謝您的幫助列子集的線性模型

ggplot(mtcars) + 
    geom_jitter(aes(y=mtcars[c(1:10), "mpg"], x=mtcars[c(1:10), "cyl"]), colour="blue") + 
    geom_smooth(aes(mtcars[c(1:10), "mpg"], mtcars[c(1:10), "cyl"]), method=lm, se=FALSE) 

我得到這個錯誤

Error in data.frame(x = c(6, 6, 4, 6, 8, 6, 8, 4, 4, 6), y = c(21, 21, : 
    arguments imply differing number of rows: 10, 32 
+0

*如何*是錯?它是否沒有給出正確的結果?它不工作嗎?結果是否稍微偏離?給我們一些線索! –

回答

2

我想這是你正在嘗試做的:

ggplot(mtcars[1:10,]) + 
    geom_jitter(aes(y=mpg, x=cyl, colour="blue")) + 
    stat_smooth(aes(y=mpg, x=cyl), method='lm', se=FALSE) 

基本上,你因爲你使用ggplot(mtcars)您重新只需稍後使用列名即可。另外,我想你打算使用stat_smooth而不是geom_smooth

輸出:

enter image description here

+0

我想只繪製兩個選定列的前10行 – Al14

+1

我更新了答案。只需在第一行使用'ggplot(mtcars [1:10,])''。 – LyzandeR