2017-10-21 3 views
-1

Je suis en train de faire une séquence avec ces conditions:Tentative d'appliquer non-fonction dans une séquence

y<-seq(from=a-2(b-a), to=a+2(b-a), by=4(b-a)/99, length.out=100) 

Vu:

sample=rnorm(50, mean=0, sd=1) 
sample_min=min(sample) 
a<-sample_min 
sample_max=max(sample) 
b<-sample_max 

Et je reçois l'erreur « tentative d'application non -fonction dans une séquence. " Comment puis-je réparer ça?

Répondre

2

Jetez un oeil à 2(b-a) dans la console:

2(b-a) 
# Error: attempt to apply non-function 

R ne sait pas que vous voulez la multiplication, il pense 2(b-a) est une fonction 2() avec l'argument b-a. Vous devez spécifier la multiplication avec l'opérateur arithmétique *. Donc, a-2(b-a) devrait être a-2*(b-a), et la même chose pour les arguments to et by. Après cela, vous devrez supprimer l'un des arguments to ou length.out car cela créera également une erreur. to et length.out ne peuvent pas être utilisés ensemble. Le produit final sera

seq(from = a - 2 * (b - a), to = a + 2 * (b - a), by = 4 * (b - a)/99) 
## or 
seq(from = a - 2 * (b - a), by = 4 * (b - a)/99, length.out = 100) 

Voir help(seq) pour plus.