【发布时间】:2016-08-18 13:16:58
【问题描述】:
我有两个向量:
x <- c(-2.0,-1.75,-1.50,-1.25,-1.00,-0.75,-0.50,-0.25,0.00,0.25,0.50,0.75,1.00,1.25,1.50,1.75,2.00,2.25,2.50,2.75)
y <- c(37.0000,24.1602,15.06250,8.91016,5.00000,2.72266,1.56250,1.09766,1.00000,1.03516,1.06250,1.03516,1.00000,1.09766,1.56250,2.72266,5.00000,8.91016,15.06250,24.16016)
我正在尝试创建一个从向量 x 给定数字的函数,它返回相应的 y 值(相同的索引)。例如,func(-2.0) 应该返回 37.0000。
目前我有这个超级丑陋的功能,我认为这不是我应该做的:
func1 <- function(x) {
if (x==-2.0) {return (37.0000)}
else if (x==-1.75){return (24.1602)}
else if (x==-1.50){return (15.06250)}
else if (x==-1.25){return (8.91016)}
else if (x==-1.00){return (5.00000)}
else if (x==-0.75){return (2.72266)}
else if (x==-0.50){return (1.56250)}
else if (x==-0.25){return (1.09766)}
else if (x==0.00){return (1.00000)}
else if (x==0.25){return (1.03516)}
else if (x==0.50){return (1.06250)}
else if (x==0.75){return (1.03516)}
else if (x==1.00){return (1.00000)}
else if (x==1.25){return (1.09766)}
else if (x==1.50){return (1.56250)}
else if (x==1.75){return (2.72266)}
else if (x==2.00){return (5.00000)}
else if (x==2.25){return (8.91016)}
else if (x==2.50){return (15.06250)}
else if (x==2.75){return (24.16016)}
else {return (Inf)}
}
【问题讨论】:
-
不需要函数,
y[ which(x == -2.0) ]。