2017-06-12 130 views
-1

让我们考虑R中的以下向量:x <- 2*c(1:100)R:在R中定义一个函数,包括for循环,如果条件为

现在我想定义一个逐步的功能,如果x >= 0 & x < 1应该达到的数值为x[1] = 2 X',该x[2] = 4为x如果x >= 1 & x < 2'....

I tried to do this with the following code: 

y <- 2*c(1:100) 

f <- function(x){for(i in 1:100){if((x >= i-1) & (x < i)){y[i]} 
           } 
       }  

这不工作 - 是什么我的代码错了?

在此先感谢。

+1

u能显示来自失踪paranthesis的语法错误预期输出 – akrun

+1

除了在(X

+0

Ok - 那么你将如何定义一个逐步的函数呢? (在这种情况下,以1:100为例) – Obriareos

回答

0

首先,您错过了if条件中的右括号。它应该是这样的:

if((x >= i-1) & (x < i)) 

所有第二,你的函数使用x作为参数以及外部矢量的名字。这很混乱。

三的是,

function(y) x[floor(y)] 

会更有效

+0

这很有帮助,谢谢。 – Obriareos