當前位置:
首頁 > 最新 > 用=還是<-?傻傻分不清

用=還是<-?傻傻分不清

R語言賦值可以用或,一般都建議使用,那你知道這兩個之間的區間嗎?那你有沒有見過和這種賦值方法嗎?今天就來和大家聊聊這基本的賦值符號都有哪些區別。

首先我們來看看符號的優先順序,和java,c這些編程語言的優先順序類似。下面這些都取自R幫助文檔,輸入即可查看,它是根據優先順序從高到低排列的。

我們可以看到的優先順序比高,這一點我們在使用時一定要注意到。

現在來舉幾個簡單例子看看。

現在來看另外一個例子。

那這又是為什麼不報錯了呢?那是因為括弧的優先順序更高,它相當於先給x賦值,再傳入到median,與下面例子等價。

為什麼此時輸入x並沒有報錯而前面卻報錯?因為在這種情況下,x被定義在用戶的當前工作空間,所以在這個使用median之後x還是存在的。

總結一下:

這說明使用這兩種方法賦值的變數是存在不同的空間或作用域。= 賦值對象存在所在的空間,而

看起來有點晦澀,現在來仔細說說這兩個的區別:

(1)所在的空間,比如median(x =1:10),x的值僅存在median函數內部空間,在median函數外面訪問不到x,所以前面程序中報錯:。

(2)整個空間,比如median(x

如果我們定義一個函數,函數中變數用

當然是不能的,因為x定義在test函數內部,僅存在test函數的空間裡面,所以在該函數外面根本訪問不到x。如果想訪問到x,除了returen,也不是沒有其他辦法的。

現在來看看另外一種賦值方法,估計很少人見過,了解之後有助於我們理解賦值過程。

簡單了解之後,來做幾個測試。

一般情況下,將=和

這裡主要是因為優先順序的問題,

為了說明什麼時候用這兩種賦值方法,先隨便看一個函數,比如scan函數,我們可以發現傳遞參數用的都是=,因此傳參數基本都是用=而不是

在R文檔中有下面介紹():文檔中介紹說

我覺得

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 跟著菜鳥一起學R語言 的精彩文章:

初識sparklyr—電影數據分析

TAG:跟著菜鳥一起學R語言 |