Las fórmulas son una característica muy útil de las funciones estadísticas y gráficas de R. Como todos, soy un usuario de estas funciones. Sin embargo, nunca he escrito una función que tome un objeto de fórmula como argumento. Me preguntaba si alguien podría ayudarme, bien vinculándome con una introducción legible a este lado de la programación R o dando un ejemplo autónomo.Fórmulas en funciones definidas por el usuario en R
10
A
Respuesta
6
Puede utilizar model.matrix()
y model.frame()
para evaluar la fórmula:
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))
que produce
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
Cuestiones relacionadas
- 1. cálculo de fórmulas definidas por el usuario (con C++)
- 2. Depuración PostgreSQL Funciones definidas por el usuario
- 3. ¿Cómo sobrecargar las funciones definidas por el usuario en Matlab?
- 4. Crear/Usar funciones definidas por el usuario en System.Data.SQLite?
- 5. Lista de funciones globales definidas por el usuario en JavaScript?
- 6. Funciones agregadas definidas por el usuario en Oracle PIVOT cláusula
- 7. Funciones en línea definidas por el usuario OpenCL
- 8. Funciones definidas por el usuario de SQLITE en Lisp
- 9. Error al manejar funciones definidas por el usuario
- 10. Las funciones agregadas más útiles definidas por el usuario
- 11. Conversiones definidas por el usuario en C++
- 12. ¿Cómo obligo a Mathematica a incluir funciones definidas por el usuario en Simplify y FullSimplify?
- 13. ¿Cuándo se evalúan las funciones definidas por el usuario en una consulta en Oracle?
- 14. Creando conversiones definidas por el usuario
- 15. Funciones agregadas definidas por el usuario con columnas de entrada múltiples en PostgreSQL
- 16. ¿Cómo usar las funciones SQL definidas por el usuario en .NET?
- 17. Funciones definidas por el usuario en Excel y problemas de velocidad
- 18. cómo cargar automáticamente las funciones definidas por el usuario en mathematica
- 19. ¿Dónde ubicar las funciones definidas por el usuario en Angular JS?
- 20. mysql muestra la lista de funciones definidas por el usuario en phpmyadmin
- 21. Lista de variables definidas en R
- 22. dónde poner las clases definidas por el usuario en Rails
- 23. Cómo escribir excepciones definidas por el usuario en C#?
- 24. Pregunta simple sobre el uso de funciones externas() y definidas por el usuario?
- 25. Haskell: mostrar/obtener una lista de todas las funciones definidas por el usuario
- 26. ¿Cómo distinguir las funciones definidas por el usuario/biblioteca de un archivo compilado?
- 27. Número indefinido de argumentos para las funciones definidas por el usuario de SQL?
- 28. doctest funciones definidas localmente
- 29. Funciones definidas por el usuario: ¿son una mala práctica de codificación?
- 30. llamar a funciones definidas por el usuario con la opción Crear Tabla
Gracias, muy interesante. También entiendo por qué los paquetes glmnet o ther pueden no ofrecer esta capacidad: usa matriz dispersa en el paquete Matrix, que no se puede tratar con model.matrix(). – gappy