2009-08-19 6 views
10

입니다. 수식은 R의 통계 및 그래픽 함수의 매우 유용한 기능입니다. 모두와 마찬가지로, 나는 이러한 기능을 사용합니다. 그러나 저는 수식 객체를 인수로 취하는 함수를 작성한 적이 없습니다. 누군가가 나를 도울 수 있는지 궁금 해서요. R 프로그래밍 측면에서 읽을 수있는 소개로 연결하거나, 자체적으로 포함 된 예제를 제공합니다.사용자 정의 함수의 공식은 R

답변

6

당신은 공식을 평가하기 위해 model.matrix()model.frame()를 사용할 수 있습니다

lm1 <- lm(log(Volume) ~ log(Girth) + log(Height), data=trees) 
print(lm1) 

form <- log(Volume) ~ log(Girth) + log(Height) 

# use model.matrix 
mm <- model.matrix(form, trees) 
lm2 <- lm.fit(as.matrix(mm), log(trees[,"Volume"])) 
print(coefficients(lm2)) 

# use model.frame, need to add intercept by hand 
mf <- model.frame(form, trees) 
lm3 <- lm.fit(as.matrix(data.frame("Intercept"=1, mf[,-1])), mf[,1]) 
print(coefficients(lm3)) 

매우 흥미로운

Call: lm(formula = log(Volume) ~ log(Girth) + log(Height), data = trees) 

Coefficients: (Intercept) log(Girth) log(Height) 
     -6.63   1.98   1.12 

(Intercept) log(Girth) log(Height) 
    -6.632  1.983  1.117 
Intercept log.Girth. log.Height. 
    -6.632  1.983  1.117 
+1

감사를 얻을 수있다. 또한 glmnet 또는 ther 패키지가이 기능을 제공하지 않는 이유를 알았습니다. 패키지 Matrix에서 sparse 행렬을 사용하며 이는 model.matrix()로 처리 할 수 ​​없습니다. – gappy

관련 문제