【发布时间】:2010-12-02 13:41:48
【问题描述】:
我有一个函数来计算二次方程的逆。默认情况下,它提供了两种可能的解决方案:
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
}
如果给定一个 y 值,这可以正常工作,但如果我给它一个列表或数据框中的一列,那么 min 和 max 元素会给我整个列表的最小值。我希望它只返回该元素的最小结果。我假设迭代列表是可能的,但效率不高。
有什么想法吗?
【问题讨论】: