2014-02-06 19 views
0

我有一個包含3個字段的數據幀:R:運行LM()保持串值

data$name: string (a description) 
data$y: numeric 
data$x: numeric 

我想創建用於我的數據的線性模型。這是很容易跑

mymodel <- lm(y ~ x, data=data) 

,但我希望能夠基於myModel保留的數據$名字,這樣我就可以看到它的值時,我問mymodel$model。如果我運行

mymodel <- lm(y ~ x + name, data=data) 

那麼我會得到很多的錯誤,因爲R或lm()功能將把data$name的因素。

有沒有辦法做我想要的?我不想要data$name作爲因子;我只是想讓這些名字在裝修後與我的數據一起出現。

回答

3

使用rownames存儲在data.frame這樣的數據:

data <- data.frame(name=letters[1:10],x=1:10,y=15:24+rnorm(10,0,0.1)) 
rownames(data) <- data$name 
mymodel <- lm(y ~ x, data=data) 
mymodel$model 
     y x 
a 15.19149 1 
b 15.93323 2 
c 16.91007 3 
d 18.00176 4 
e 19.02350 5 
f 19.96446 6 
g 20.92975 7 
h 21.85556 8 
i 22.99855 9 
j 24.02255 10 

predict(mymodel) 
     a  b  c  d  e  f  g  h 
15.02702 16.01726 17.00750 17.99774 18.98797 19.97821 20.96845 21.95868 
     i  j 
22.94892 23.93916