[R語言] 《R語言編程藝術(shù)》 第1章 快速入門

為什么學(xué)這本書:
這本書我剛開始學(xué)習(xí)R的時(shí)候草草看過,名曰經(jīng)典入門書籍,實(shí)則對(duì)R零基礎(chǔ)非常不友好

在學(xué)習(xí)《R for Data Science》和《Data Analysis for the Life Sciences》兩本書時(shí)嫡锌,我發(fā)現(xiàn)時(shí)常需用編程思想解決核心問題伪冰,但前者側(cè)重tidyverse包數(shù)據(jù)處理繁疤,后者已是R統(tǒng)計(jì)應(yīng)用钠惩,所以需要一本書幫助我撿起編程思想,以及帶我進(jìn)一步了解R編程的魅力

所以從今天就開始重溫這本書苞笨,存在即合理

前置知識(shí)

- 批處理模式

pdf('dat.pdf')
hist(rnorm(100))
# 關(guān)閉正在使用的圖形設(shè)備
# 實(shí)際上就是把文件寫入磁盤的機(jī)制
dev.off()

- 基礎(chǔ)知識(shí)點(diǎn)

c 表示連接(英文是concatenate)

x <- c(1,2,4)
y <- c(x,x,3);y
# [1] 1 2 4 1 2 4 3

R向量的索引(下標(biāo))是從1開始

y[3]
# [1] 4
x[2:3]
# [1] 2 4

退出R

q()
  • 內(nèi)置數(shù)據(jù)集
data()

函數(shù)入門

# 統(tǒng)計(jì)奇數(shù)
oddcount <- function(x) {
  k <- 0
  for (n in x){
    # 取模 %%
    if (n %% 2 == 1) k <- k + 1
  }
  return(k)
}

var <- c(1,2,3,4,5,6,7,9)
oddcount(var)

在上述例子中:
x:形式參數(shù)
var:實(shí)際參數(shù)

向量入門

  • 標(biāo)量
    單個(gè)的數(shù)债朵,實(shí)際上是一元向量

- 字符串簡單處理

u <- paste('abc','de','f');u
# [1] "abc de f"

v <- strsplit(u,' ')
v # v[1]
# [[1]]
# [1] "abc" "de"  "f" 

v[[1]]
# [1] "abc" "de"  "f"  

列表入門

x <- list(u=2,v='abc');x
# $u
# [1] 2
# 
# $v
# [1] "abc"

列表的常見用法是把多個(gè)值打包組合在一起,然后從函數(shù)中返回

hn <- hist(Nile); hn

數(shù)據(jù)框入門

d <- data.frame(list(kids=c('Jack','Jill'),
                     ages=c(12,10)))
# dataframe內(nèi)部本質(zhì)是list構(gòu)成的瀑凝,可省略
d <- data.frame(kids=c('Jack','Jill'),
                     ages=c(12,10))

類入門

以S3類為例

hn <- hist(Nile)
print(hn)
  • attribute包含列表的所屬類

類需要用在泛型函數(shù)中序芦,泛型函數(shù)代表一個(gè)函數(shù)族,其中每個(gè)函數(shù)都有相似的功能粤咪,但是適用于某個(gè)特定的類谚中,如summary()plot()

拓展案例一

—— 考試成績的回歸分析

examsquiz <- data.frame(
  V1 = c(2.0,3.3,4.0,2.3,2.3,2.4,2.4,2.6,3.3,3.1,3.2),
  V2 = c(3.3,2.0,4.3,1.2,1.0,2.4,3.2,3.3,1.7,3.2,2.9),
  V3 = c(4.0,3.7,4.0,3.3,3.3,4.1,4.0,3.9,2.9,3.3,3.1)
)
# V1 期中,V2 期末寥枝,V3 平均小測

# 用期中成績預(yù)測期末成績
lma <- lm(examsquiz$V2 ~ examsquiz$V1)
  • 可以用attributes列出lm類實(shí)例lma的全部組件
attributes(lma)
# $names
# [1] "coefficients"  "residuals"     "effects"       "rank"          "fitted.values"
# [6] "assign"        "qr"            "df.residual"   "xlevels"       "call"         
# [11] "terms"         "model"        
# 
# $class
# [1] "lm"
  • 查看結(jié)果
lma$coefficients
# (Intercept) examsquiz$V1 
#  0.8921636    0.6047314 

print(lma) # 等價(jià)于 lma
# 
# Call:
#   lm(formula = examsquiz$V2 ~ examsquiz$V1)
# 
# Coefficients:
#   (Intercept)  examsquiz$V1  
#     0.8922        0.6047 
  1. 使用print只返回上述結(jié)果是由于泛型函數(shù)print調(diào)用內(nèi)部的print.lm()來完成
  2. 可以用str(lma)查看詳細(xì)結(jié)構(gòu)宪塔,用summary(實(shí)際是summa.lm())獲取詳細(xì)摘要
  • 多個(gè)變量線性擬合
lmb <- lm(examsquiz$V2 ~ examsquiz$V1 + examsquiz$V3)

互聯(lián)網(wǎng)資源

R包更新

- win

install.packages("installr")
require(installr)
updateR()

- mac

install.packages('devtools') 
library(devtools)
install_github('andreacirilloac/updateR')
library(updateR)
updateR(admin_password = 'Admin user password')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市囊拜,隨后出現(xiàn)的幾起案子某筐,更是在濱河造成了極大的恐慌,老刑警劉巖冠跷,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件南誊,死亡現(xiàn)場離奇詭異身诺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抄囚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門霉赡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怠苔,你說我怎么就攤上這事同廉∫翘牵” “怎么了柑司?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锅劝。 經(jīng)常有香客問我攒驰,道長,這世上最難降的妖魔是什么故爵? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任玻粪,我火速辦了婚禮,結(jié)果婚禮上诬垂,老公的妹妹穿的比我還像新娘劲室。我一直安慰自己,他們只是感情好结窘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布很洋。 她就那樣靜靜地躺著,像睡著了一般隧枫。 火紅的嫁衣襯著肌膚如雪喉磁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天官脓,我揣著相機(jī)與錄音协怒,去河邊找鬼。 笑死卑笨,一個(gè)胖子當(dāng)著我的面吹牛孕暇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赤兴,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芭商,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搀缠?” 一聲冷哼從身側(cè)響起铛楣,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎艺普,沒想到半個(gè)月后簸州,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鉴竭,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年岸浑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搏存。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矢洲,死狀恐怖璧眠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情读虏,我是刑警寧澤责静,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站盖桥,受9級(jí)特大地震影響灾螃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揩徊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一腰鬼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塑荒,春花似錦熄赡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至偎窘,卻和暖如春乌助,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陌知。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工他托, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仆葡。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓赏参,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沿盅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子把篓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容