2017-09-02 137 views
4

我是R編程領域的新手,當我嘗試在RI中聲明變量時找不到任何存在的特定方式在其他編程語言(如C)中,希望在使用它之前聲明變量,雖然在vba中,我們可以定義變量而不定義它,這被認爲是一個特殊的變體,但是我們可以使用一個名爲Option Explicit的特殊語句,它不允許我們不使用未聲明的變量。在R中聲明變量

雖然這是方便的方式,但在大型程序中,可以很容易地犯錯誤,這可能是很難找到,所以我的問題是,在R編程有任何這樣的選項/實用程序存在,使變量之前聲明被定義爲?

+1

在C語言一個聲明爲int類型的變量只能保存一個整數值,一個char類型標識符只能保存字符值等。在R語言中,假設當前是一個賦予向量的標識符。在稍後的時間點,我們使用相同的標識符來保存列表或數據幀或矩陣。 –

+0

嗨饒,感謝您的回覆,是的,我同意我們可以在數據清理和數據建模過程中鍵入轉換變量,但不能在r中做正式聲明,因爲在vb中我們使用了一個特殊的聲明Option(「Explicit」)是爲了正式聲明變量,以便我們可以防止重新定義變量和打字錯誤等。 – shivanesh

回答

0

在R中,不需要像使用Java或C#語言那樣對變量進行正式聲明。相反,該變量將從作業的右側獲得其類型。也就是說,如果您需要將變量聲明爲具有類型,則可以將其分配給所需類型的零長度對象,例如,如果你需要一個空的數據幀,但已知列類型

x <- character() 
class(x) 
[1] "character" 
length(x) 
[1] 0 
y <- numeric() 
class(y) 
[1] "numeric" 
length(y) 
[1] 0 

一個實例,你可能需要指定一個變量的類型會。

+0

感謝您的回覆Tim,對於一個小程序,可以很好地定義變量而不用聲明,但對於一個大程序,我們可以通過重新定義變量來輕鬆地提交錯誤,所以如果我們聲明它,我們可能不會提交這樣的錯誤,所以有沒有一種明確的方式告訴R在定義之前聲明變量? – shivanesh

+2

Downvoter:留下評論? –

+2

這給出了有用的信息。這並不正確,但總的來說,對於那些對R不太瞭解的用戶來說,這可能會有些誤導。在R中創建某個類與我們可能會聲明並將約束應用於C中的對象的方式不同。由於OP要求的功能類似於C中的功能,因此澄清這些差異將非常有幫助。請參閱L.V.Rao對Shivanesh的評論以獲取其他解釋/來源。 – www

4

R的核心是解釋的計算機語言。這有助於隨時聲明變量。與C語言相比,這是一個優勢,你需要首先聲明變量......但正如你所說的「對於一個小程序來說,定義變量時最好先不聲明它,但對於大型程序,我們可以通過重新定義變量再次「.. 所以要克服這個問題,我有一個解決方案....你可以檢查每一次之前定義一個新的變量,無論它是否已經定義過或沒有。你可以怎麼做見下圖: 可以使用的功能存在()

> a <- 6 
> exists("a") 
[1] TRUE 
> exists("b") 
[1] FALSE 

可以輕鬆地檢查變量是否已經定義的或沒有幫助..

+0

謝謝你的迴應Mr.Stark,你給出的答案真的很棒。 – shivanesh

+0

我的榮幸,如果你喜歡答案高興接受它 –