2017-01-20 2 views
0

Ich habe ein Problem mit der R-Funktion rep oder vielleicht ist es etwas einfacher, dass ich falsch mache.Problem mit der R-Funktion rep()

k = ((100)*(1-0.9)) 
    k # k = 10 
    length(rep(0,times = k)) # length of 9 instead of 10 
    length(rep(0,times = 10) # length of 10 ! 

Das ist wirklich seltsam, da die Variable k 10 als Wert hat.

Antwort

2

Werfen Sie einen genaueren Blick auf k. Es ist nicht eine ganze Zahl und es ist auch nicht wirklich 10.

typeof(k) 
# [1] "double" 
print(k, digits = 22) 
# [1] 9.999999999999998223643 

Wir kümmern sich um k integer, weil bewertende das times Argument von rep() sollte eine ganze Zahl sein. Weiterhin ist aus help(rep):

nicht ganzzahlige Werte von times wird auf Null abgeschnitten.

So k wird

trunc(k) 
# [1] 9 

den Link Siehe @Gregor in die Kommentare, warum k nicht wirklich 10.

ist