2017-08-17 48 views
2

複素数zを簡単に定義できることはわかっています。例えば、 z <- 3 + 2iなどです。私は複素数を作成する関数を定義したいときには:F(1、2)でRの複素数

エラー:

f <- function(x,y){ 
x + yi 
} 
f(1,2) 

を私は、このエラーメッセージが表示されますオブジェクトのYI 'が見つかりません。

complex機能を使用したくないのですが、私の場合は複素数の実数部と虚数部を見つけることが実際には難しいためです。

どうすればいいですか?

+0

で複素数を扱うための便利なガイドでは、 'as.complex(Y)それは動作しません' –

+0

、 'Fでエラーが発生しました(1、2)であってもよい:オブジェクト'見つからない' – AdamElKaroui

+1

@ zx8754いいえ、x + y * 1i。 – Roland

答えて

5

i表記は数字でのみ機能します(Rの変数は数字で開始できないため)。それ以外の場合はyiを "yi"という名前の別の変数と解釈し、yを複素数に変換しません。その代わり、complex()機能は、まさにこの目的のために設計されて*

f <- function(x,y){ 
    x + y * 1i 
} 
f(1,2) 
# [1] 1+2i 
+0

完璧、ありがとう! – AdamElKaroui

2

で明示的に乗算を使用します。

f <- function(x,y){ 
    complex(real = x, imaginary = y) 
} 

f(1,2) 
# [1] 1+2i 

Here's R.