J'ai une fonction pour calculer l'inverse d'une équation quadratique. Par défaut, il donne les deux solutions possibles:Comment appliquer Min ou Max à chaque résultat d'une fonction séparément?
invquad<-function(a,b,c,y,roots="both")
{
#Calculate the inverse of a quadratic function y=ax^2+bx+c (i.e. find x when given y.)
#Gives NaN with non real solutions.
root1<-sqrt((y-(c-b^2/(4*a)))/a)-(b/(2*a))
root2<--sqrt((y-(c-b^2/(4*a)))/a)-(b/(2*a))
if (roots=="both")
result<-c(root1,root2)
if (roots=="min")
result<-min(root1,root2)
if (roots=="max")
result<-max(root1,root2)
result
}
Cela fonctionne bien si on leur donne une seule valeur de y, mais si je donne une liste ou une colonne d'une trame de données, puis les éléments min et max me donnent la valeur minimale de la liste entière. Je veux qu'il retourne juste le résultat minimum pour cet élément. Je suppose que l'itération sur la liste est possible, mais ce n'est pas très efficace.
Des idées?
Parfait! Exactement ce que je cherchais.... – PaulHurleyuk