2016-09-17 17 views
-2

Rのこの2つのステートメントの違い、またはRでNULLを使用する理由は何ですか?あなたが割り当てされた第2のコードに単にNULLrでnullを使用する理由

for (i in 1:10) { 
    T=NULL 
    T[i]="a" 
} 
T 
[1] NA NA NA NA NA NA NA NA NA "a" 
+1

'T = NULL'は変数' T'を初期化するために 'for()'ループの外側にあるべきです。しかし、 'T'は' TRUE'を表すRグローバル変数であるため、実際に最初のループで何が起こっているのか見ていません。 'x'のような' T'以外のものを試して、あなたが得るものを見てください。 –

答えて

3

を用いて

for (i in 1:10) { 
    T[i]="a" 
} 
T 
[1] "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" 

T = NULLので、すべての以前の状態が失われることになるが、TにNULLを割り当てた後、最後のステップでは、ループはaを割り当てますTの最後のインデックスに、最初のケースについて、したがって出力

for (i in 1:10) { # consider last step of loop 
    T=NULL # set T=NULL so all values are gone 
    T[i]="a" # set last index of T = 'a' 
} 
T 

は、それは私はあなたが既に知っていると思いますどのいつものように実行されます。

関連する問題