2013-04-17 7 views
7

ich folgendes Experiment tat, da man auf der Seite approx Hilfe keine Erwähnung von komplexen Daten gibt es:Wird approx() für komplexe Zahlen verwendet?

Rgames> zfoo 
[1] 1+ 6i 2+ 7i 3+ 8i 4+ 9i 5+10i 
Rgames> approx(zfoo,n=10) 
$x 
[1] 1.000000 1.444444 1.888889 2.333333 2.777778 3.222222 3.666667 4.111111 
[9] 4.555556 5.000000 

$y 
[1] 6.000000 6.444444 6.888889 7.333333 7.777778 8.222222 8.666667 
[8] 9.111111 9.555556 10.000000 

für approx in den Code Graben, entdeckte ich, dass xy.coords (offenbar auch für komplexe Daten undokumentiert) Real behandelt und Imag Teile von komplexen Daten wie die x und y Teile von Koordinatendaten. Meine Frage ist also: ist das beabsichtigte Verhalten? Ich bin immer etwas paranoid in Bezug auf die Funktionalität, die nicht explizit dokumentiert ist.

Antwort

6

Sieht vorsätzliche und zuverlässig zu mir, als approx() Anrufe regularize.values(), die xy.coords() aufruft, die diesen Code Block umfasst:

else if (is.complex(x)) { 
    y <- Im(x) 
    x <- Re(x) 
    xlab <- paste0("Re(", ylab, ")") 
    ylab <- paste0("Im(", ylab, ")") 
} 

wonach approx() betreibt ebenso wie Sie bestanden hätte, wenn sie numerisch (real/rational) Vektoren x und y.

+0

Danke-- Ich hätte eine Schicht tiefer in den Code gegraben. –

+0

@CarlWitthoft - FWIW, basierend auf dem Kommentar, der 'regularize.values' in den R-Quellen einführt, lehne ich mich jetzt den Autoren zu * nicht *, die ihre Anwendung auf komplexe Zahlen in Betracht gezogen haben. Eine Art immateriell, solange die Funktion zuverlässig funktioniert und Ihre Anwendung sinnvoll ist! –