2016-09-17 90 views
-2

R中的這兩個語句或爲什麼在R中使用NULL有什麼不同?爲什麼在r中使用null

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'是一個代表'TRUE'的R全局變量,所以你沒有看到第一個循環中實際發生了什麼。嘗試使用'T'以外的東西,比如'x',看看你得到了什麼。 –

回答

3

只要你在指定T = NULL因此之前的所有狀態不會丟失,但在分配NULL至T之後的最後一步,循環將分配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 

關於第一種情況下,它會照常運行,我猜你已經知道了。

相關問題