2017-06-12 134 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