R語言學(xué)習(xí)-1-Basic Building Blocks

介紹R中的一些基本模塊,所有的命令都可以在Rconsole里交互式進(jìn)行。 推薦使用Rstudio進(jìn)行學(xué)習(xí)

變量

R最簡單的應(yīng)用,是可以作為交互式的計算器痘绎,在console里輸入5 + 7然后回車:

> 5 + 7 #輸入,R的控制臺里輸入的前方會有>標(biāo)志
[1] 12  #輸出結(jié)果

默認(rèn)情況下肖粮,R僅打印結(jié)果12。 但是尔苦,R是一種編程語言涩馆,通常我們使用一種編程語言而不是計算器的原因是為了使某些過程自動化或避免不必要的重復(fù)。

在這種情況下允坚,我們可能需要在第二個計算中使用上面的結(jié)果魂那。 不必每次都需要重新鍵入5 + 7,我們只需創(chuàng)建一個存儲結(jié)果的新變量即可稠项。

在R中為變量分配值的方式是使用賦值運(yùn)算符涯雅,該運(yùn)算符只是一個“<”符號,后跟一個“-”展运。 看起來像這樣:<-活逆。就像一個箭頭,把箭頭右邊的值分配給箭頭左側(cè)的變量名稱拗胜。

我們把上面 5 + 7的結(jié)果賦值給名稱為x的新變量蔗候,我們只需要輸入:

> x <- 5 + 7

可以看到這次沒有直接輸出12。因為當(dāng)我們使用賦值運(yùn)算符時埂软,R默認(rèn)我們不希望立即看到結(jié)果锈遥,而是以后打算將結(jié)果用于其他用途。

要查看變量x的內(nèi)容勘畔,只需鍵入x并按下回車:

> x
[1] 12

現(xiàn)在我們再把 x-3賦值給變量y:

> y <- x - 3

看看y的值是多少所灸?

> y
[1] 9

向量

現(xiàn)在,讓我們創(chuàng)建一個小的數(shù)字集合炫七,稱為向量(vector)爬立。任何包含數(shù)據(jù)的對象都稱為數(shù)據(jù)結(jié)構(gòu),而數(shù)值向量是R中最簡單的數(shù)據(jù)結(jié)構(gòu)類型诉字。 實(shí)際上懦尝,即使單個數(shù)字也被認(rèn)為是長度為1的向量。

創(chuàng)建向量的最簡單方法是使用c()函數(shù)壤圃,該函數(shù)代表“連接(concatenate)”或“組合(combine)”陵霉。 若要創(chuàng)建包含數(shù)字1.193.14的向量伍绳,只需要輸入c1.1踊挠,9,3.14),我們把這個結(jié)果保存到變量z效床。

> z <- c(1.1, 9, 3.14)
[1] 1.10 9.00 3.14

每當(dāng)我們對特定函數(shù)有疑問時睹酌,都可以通過?命令訪問R的內(nèi)置幫助文件。例如我們想了解更多關(guān)于c()函數(shù)的信息剩檀,我們可以在控制臺輸入?c來查看憋沿,記住這個時候不需要后面的括號

> ?c

這個時候沪猴,R就會彈出c()函數(shù)的幫助文檔辐啄,如果你使用的是Rstudio,那么幫助文檔在右下方的窗口內(nèi)运嗜。

現(xiàn)在回到我們上面的z變量壶辜,我們在控制臺輸入z,會輸出什么担租?

> z
[1] 1.10 9.00 3.14 #沒有輸入時的逗號了

我們還可以通過組合向量來創(chuàng)建新向量砸民,比如創(chuàng)建一個包含z, 555, z的新向量。這次我們不賦值給新變量奋救,以便立即看到結(jié)果岭参。

> c(z, 555, z)
[1]   1.10   9.00   3.14 555.00   1.10   9.00   3.14

算數(shù)表達(dá)式

數(shù)值向量還可以直接用于算術(shù)表達(dá)式:

> z * 2 + 100
[1] 102.20 118.00 106.28

可以看到R將向量z中的每個元素都乘以2,然后再每個元素加上100菠镇。 其他常見的算數(shù)運(yùn)算符包括:

'-'
'/'
'^' #平方
sqrt() #平方根
abs() #絕對值

我們來對z - 1的向量進(jìn)行取平方根冗荸,并賦值給my_sqrt

> my_sqrt <- sqrt(z - 1)

那么my_sqrt的值是什么呢?

> my_sqrt
[1] 0.3162278 2.8284271 1.4628739

與前面的計算類似利耍,R首先從z的每個元素中減去1蚌本,然后取每個元素的平方根。 這樣就得到了與原始向量z相同長度的向量隘梨。

我們再創(chuàng)建一個新變量my_div程癌,代表z除以my_sqrt的結(jié)果。

> my_div <- z / my_sqrt
> my_div
[1] 3.478505 3.181981 2.146460

當(dāng)給定兩個具有相同長度的向量時轴猎,R逐個元素簡單地執(zhí)行指定的算術(shù)運(yùn)算嵌莉。 如果向量的長度不同,R將循環(huán)較短的向量捻脖,直到其長度與較長的向量相同锐峭。

例如上面的z * 2 + 100的例子,z是一個長度為3的向量可婶,而2100可以看作長度為1的向量沿癞。在R里面,實(shí)際發(fā)生的運(yùn)算是z * c(2, 2, 2) + c(100, 100, 100) 矛渴。

再看一個關(guān)于向量循環(huán)的例子:

> c(1, 2, 3, 4) + c(0, 10)
[1]  1 12  3 14

第二個向量被R自動循環(huán)了椎扬。

如果較短的向量無法均勻的劃分較長向量的長度,R會在結(jié)果中輸出一些警告:

> c(1, 2, 3, 4) + c(0, 10, 100)
[1]   1  12 103   4
Warning message:
In c(1, 2, 3, 4) + c(0, 10, 100) :
  longer object length is not a multiple of shorter object length

省時小技巧

  • 在控制臺按方向鍵,可以看到歷史的輸入記錄
  • 如果忘記變量或者函數(shù)名蚕涤,可以使用Tab鍵自動補(bǔ)全

本文首發(fā)于公眾號:檸檬培養(yǎng)師(ID: yantinger90)筐赔,歡迎關(guān)注!
R語言學(xué)習(xí)-1-Basic Building Blocks

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末揖铜,一起剝皮案震驚了整個濱河市茴丰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛮位,老刑警劉巖较沪,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異失仁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)们何,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門萄焦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冤竹,你說我怎么就攤上這事拂封。” “怎么了鹦蠕?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵冒签,是天一觀的道長。 經(jīng)常有香客問我钟病,道長萧恕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任肠阱,我火速辦了婚禮票唆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屹徘。我一直安慰自己走趋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布噪伊。 她就那樣靜靜地躺著簿煌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鉴吹。 梳的紋絲不亂的頭發(fā)上姨伟,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音拙寡,去河邊找鬼授滓。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的般堆。 我是一名探鬼主播在孝,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淮摔!你這毒婦竟也來了私沮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤和橙,失蹤者是張志新(化名)和其女友劉穎仔燕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魔招,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晰搀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了办斑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片外恕。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乡翅,靈堂內(nèi)的尸體忽然破棺而出鳞疲,到底是詐尸還是另有隱情,我是刑警寧澤蠕蚜,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布尚洽,位于F島的核電站,受9級特大地震影響靶累,放射性物質(zhì)發(fā)生泄漏腺毫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一尺铣、第九天 我趴在偏房一處隱蔽的房頂上張望拴曲。 院中可真熱鬧,春花似錦凛忿、人聲如沸澈灼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叁熔。三九已至,卻和暖如春床牧,著一層夾襖步出監(jiān)牢的瞬間荣回,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工戈咳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留心软,地道東北人壕吹。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像删铃,于是被迫代替她去往敵國和親耳贬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359