2016-09-17 2 views
-2

В чем разница между этими двумя утверждениями в R или почему используется NULL в R?Зачем использовать null в r

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

с помощью 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' должен быть снаружи и перед циклом' for() 'для инициализации переменной' T'. Но поскольку 'T' является глобальной переменной R, представляющей' TRUE', вы не видите, что на самом деле происходит в первом цикле. Попробуйте использовать что-то другое, кроме 'T', например' x', и посмотрите, что вы получите. –

ответ

3

Просто во втором коде вы назначаете T = NULL поэтому все предыдущие состояния будут потеряны, но на последнем шаге после назначения NULL Т, цикл будет назначать a до последнего индекса Т, следовательно, выход

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 

о первом случае она будет работать как обычно, который я думаю, вы уже знаете.

Смежные вопросы