2014-02-24 55 views
2

我用下面的代碼:有沒有辦法使用變量而不需要定義它(在R中)?

tempdata <- rbind(tempdata,newdata) # bind rowwise 

據我所知,被定義TempData的(像所有的對象,變量......)的需求。由於只有數字值,我將其定義爲tempdata<-0。這不是一個真正的大問題,但使用rbind後來的時候,用0第一行保持在第一位,我必須用某種

tempdata<-tempdata[-1,] # deletes first row 

我不能把它定義爲tempdata<-'',因爲這會是一個角色,對吧?

就像我說的,對我來說不是一個問題,但會有更好的方法,特別是如果我或某人在代碼中多次使用rbind(),因此可能第一行必須「清除」而不是隻有一次......

同樣可以使用cbind()時是一個問題。

也許有人知道一個更好的解決方案?

+2

定義'TempData的< - 數字(0)',那麼'rbind' /'cbind'結果將不會包含不需要的數據。 – tonytonov

+0

@tonytonov:謝謝,我會嘗試這個,應該工作! –

+2

'tempdata < - NULL'也可以工作 – jbaums

回答

5

如果使用rbind/cbind建立從一個迭代過程的一些結果,則可以聲明「空」對象到所述數據存儲在。對於數字數據,使用numeric(0),其是零長度的數值向量。它與任何綁定兼容:

rbind(numeric(0), 1:3) 
    [,1] [,2] [,3] 
[1,] 1 2 3 
cbind(numeric(0), 1:3) 
    [,1] 
[1,] 1 
[2,] 2 
[3,] 3 

這同樣適用於NULL(正如@jbaums指出的那樣)。它甚至可能會更方便,因爲您不必手動指定數據類型(同樣也將與numeric(0)工作,由於隱式類型轉換):

rbind(NULL, letters[1:3]) 
    [,1] [,2] [,3] 
[1,] "a" "b" "c" 
相關問題