天天看點

《R語言初學指南》一1.2 向量

本節書摘來自異步社群《r語言初學指南》一書中的第1章,第1.2節,作者【美】brian dennis(布萊恩·丹尼斯),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

r語言初學指南

r可以處理“一整串”的數字。例如:

上面第一行中的指令c()用來将3,−2,4,7,5,−1和0“合并”成一個清單,将該清單命名為x。在r中,由數字組成的清單有一個專門術語:向量。在這裡,x是一個由7個元素組成的向量,y的值是4。表達式x+y的意思是把x中的每一個元素都加4。不過,如果y和x一樣,都是向量,那麼會出現什麼情況呢?

這裡x+y代表,x的元素與y中對應的元素分别相加!

回憶一下四年級時,老師曾給出一些大數字相乘的題目作為家庭作業:

《R語言初學指南》一1.2 向量

把上面一排數字和下面一排數字各自看成一個向量,分别命名為“top”和“bot”。然後,把兩個向量相乘:

這裡有幾個地方需要注意:(1)在寫r語句時,不要用逗号把比較大的數按照三位一組的方式隔開。逗号在r中有其他的用處,比如,在指令c()中,需用逗号把不同的數分開;(2)要按照同樣的順序,把兩組數分别輸入到兩個向量中;(3)數之間可有空格,但必須要用逗号把數隔開;(4)不要把這個告訴四年級的小朋友。

在r中,所有的算術運算都可以用在向量上,比如,加減運算、乘除運算,甚至包括乘方運算。像剛才看到的那樣,如果對一個數和一個向量進行運算,那麼這個數會作用在向量的每個元素上;如果對兩個長度相同的向量進行運算,則兩個向量中對應的元素會分别進行運算。

向量運算的優先級與算術運算一樣,并且也可用括号來确定哪些運算需要優先進行:

如果在輸入指令時出現錯誤,隻要再重新輸入一遍正确的指令即可。r會計算并儲存最終輸入的版本。同時,如果一行指令太長,可在任意一個明顯不完整的r指令(r是很智能的!)處敲擊Enter鍵,這時,r會出現一個像加号一樣的提示符,在這個提示符處繼續輸入指令,輸入完後敲擊Enter鍵就可以了:

可用下面的冒号“:”來建立一個特殊的向量:

這裡的j是向量,其元素是0~10的整數。也可用同樣的方式來定義包含負數的向量:

想知道2的0次方到20次方分别是多少嗎?這樣做:

此時讀者可能已經注意到:用r的文法可以非常清晰地描述數學問題,這樣就可毫無障礙地用即時消息或是短信來跟其他人讨論數學問題。

s和r這兩個人都是有經驗的r使用者,他們知道sqrt()是用來求解括号中的平方根。在第3章中,還會介紹該函數和其他一些函數的使用方法。

繼續閱讀