2015-02-20 2 views
1

Я пытаюсь написать функцию, которая будет генерировать первые n членов с заданным уравнением. Например: F (x_2) = x_1 * г + 3, и x_n = е (Х- (п-1) Вот мой код:R: функция, которая генерирует первые n членов

super = function(x,r,n){ 
x[n] = r*x+3 
x1=seq(x,x[n],,n) 
return(x1) 
} 

Когда я пытаюсь запустить его я получаю: Ошибка в супер (0,6, 2, 100): не может найти функцию «х» Но если сделать основной код, как:.

n=88 
x=0.6 
x1 = seq(x,100,,n) 

все работает

заранее спасибо за любые входы

+0

Вы уверены, что это сообщение об ошибке, которое вы получаете с помощью кода выше? Я не могу воспроизвести эту ошибку. Вместо этого я получаю 'Ошибка в seq.default (x, x [n],, n): 'from' должен быть длиной 1' – MrFlick

+0

Я только получаю сообщение об ошибке, если я меняю вторую строку на x [n] = r * x [n-1] +3 логически то, как это должно быть, но я не могу понять, как сказать R, чтобы запустить функцию n раз, начиная с предоставленного x – AK9309

+0

Я не уверен, но вы можете попробовать использовать 'x1 = seq (x [1], x [n] ,, n)' вместо –

ответ

0

Мы можем разрезать вход и применить функцию на новом фрагменте.

getFirstN = function(arr, func, n){ 
    slice = arr[1:n] 
    return(lapply(slice, func)) 
} 
e.g.: 
square = function(x) { 
    return(x * x) 
} 

example = c(1, 2, 3, 4) 

print(getFirstN(example, square, 2)) 
1, 4 # the output 
Смежные вопросы