R語言數(shù)據(jù)科學(xué)入門_松鼠學(xué)堂課程筆記1

前言:
網(wǎng)易云課堂R語言數(shù)據(jù)科學(xué)入門聽課筆記措译,主要講述R和RStudio的安裝使用,R基本語法以及R包的使用表悬。
封面致敬R大神Hadley Wickham

image.png

Hadley Wickham is a statistician from New Zealand who is currently Chief Scientist at RStudio[1][2] and an adjunct Professor of statistics at the University of Auckland[3], Stanford University[4], and Rice University.[5] He is best known for his development of open-source statistical analysis software packages for R (programming language) that implement logics of data visualisation and data transformation. Wickham's packages and writing are known for advocating a tidy data approach to data import, analysis and modelling methods.

R初試:

#繪制直方圖
> hist(rnorm(10000),col='skyblue')
Rplot01.png

Rstudio基本操作:

1. 注釋:

  • “#”后面的內(nèi)容表示注釋
  • 如果有多行注釋則在每一行注釋前加上“#”
  • 在注釋行結(jié)尾加上4個(gè)“#”夕凝,則這一行會(huì)被當(dāng)做一個(gè)節(jié)標(biāo)題

2. 變量賦值:

  • “<-” 表示變量賦值
  • “=” 表示參數(shù)賦值

3. 數(shù)據(jù)調(diào)用:

  • head(diamonds) R語法
  • diamonds.head() Python語法

打開文件亂碼情況茎杂,解決方案:
file > reopen with encoding > UTF-8 / set as default

4. 查看幫助文檔:

  • help(ggplot2) #對(duì)包使用help,查看包的信息
  • help("CO2") #對(duì)函數(shù)使用help摔竿,查看函數(shù)使用方法
  • help(ggplot) #對(duì)內(nèi)置數(shù)據(jù)集使用幫助文檔真慢,查看數(shù)據(jù)集的信息
  • example(ggplot) # 查看ggplot函數(shù)用法示例
Rplot.png

5. 使用R的內(nèi)置數(shù)據(jù)集

  • data() #用于查看R語言的內(nèi)置數(shù)據(jù)集
  • head(women) #直接鍵入數(shù)據(jù)集名稱查看數(shù)據(jù)集
  • install.packages("gcookbook") # 安裝gcookbook
  • data(package =.packages(all.available =TRUE))#查看已安裝的所有包中的數(shù)據(jù)
  • library(gcookbook) #使用其它包中的數(shù)據(jù),需要先載入相應(yīng)的R包
  • head(worldpop) #World population estimates from 10,000 B.C. to 2,000A.D.

什么是R包榕吼?

R package, 中文是 R 包. R 包是一種包裝 R 代碼, 數(shù)據(jù)和文檔的方式. R 包是 R 語言強(qiáng)大的擴(kuò)展性和靈活性的基礎(chǔ), R 發(fā)行版本身就包括三十多個(gè)高質(zhì)量的 R 包. 一個(gè)R包中包含了一組可以完成特定任務(wù)的程序代碼饿序;通常這種特定任務(wù)是會(huì)重復(fù)執(zhí)行的,并且重復(fù)執(zhí)行時(shí)羹蚣,任務(wù)內(nèi)容是相似或者相同的原探。 在使用R分析數(shù)據(jù)時(shí),其中一部分代碼是我們自己寫的,還有很大一部分代碼是通過調(diào)用其他人寫好的R包實(shí)現(xiàn)的咽弦。如果沒有這些第三方R包徒蟆,我們的生活將會(huì)在加班和過度勞累中失去意義。

1. 通過菜單點(diǎn)擊安裝R包

  • 1.1在R原生界面中安裝
  • 1.2在Rstudio中安裝

2. 通過命令安裝R包

install.packages('ggplot2')                        # 一次一個(gè)
install.packages(c('reshape2','ggthemes','plyr'))  # 一次多個(gè) 

3. 切換R包鏡像型型,以便更快下載R包

  • 3.1 通過菜單操作
  • 3.2 通過程序命令設(shè)定
# R包下載鏡像列表
https://cran.r-project.org/mirrors.html
# 全局生效
options(repos = 'https://mirrors.ustc.edu.cn/CRAN/')    
# 只在下載此R包時(shí)生效
install.packages('ggplot2',repos ='https://mirrors.ustc.edu.cn/CRA

4. 常用的R包

  • 數(shù)據(jù)加載
    • readr,readxl,haven: 存取本地文件
    • RODBC,RMySQL,RPOstgresSQL, RSQLite :從數(shù)據(jù)庫中存取數(shù)據(jù)
  • 數(shù)據(jù)處理
    • dplyr - 必備數(shù)據(jù)處理工具段审,對(duì)數(shù)據(jù)集做summarize, join等處理。
    • tidyr - 將數(shù)據(jù)集轉(zhuǎn)化成格式更工整的數(shù)據(jù)集闹蒜,數(shù)據(jù)清洗寺枉。
    • stringr - 對(duì)字符串類型的數(shù)據(jù)進(jìn)行正則表達(dá)式處理的工具。
    • lubridate - 處理日期和時(shí)間類型數(shù)據(jù)的工具
  • 數(shù)據(jù)可視化
    • ggplot2: R中最著名的可視化工具包

5. R知識(shí)體系概覽

image.png

數(shù)據(jù)文件導(dǎo)入和導(dǎo)出點(diǎn)我觀看視頻

部分windows系統(tǒng)用戶绷落,無法識(shí)別中文型凳,需要改成英文字符,像我“R語言數(shù)據(jù)科學(xué)”就改成了“yuyanshujukexue”

1. 導(dǎo)入csv文件

> bankloan<-read.csv('c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/bankloan.csv',header = TRUE)
> View(bankloan)
但是用R自身無法讀取成功嘱函,需要用到readr包
> install.packages("readr")
> library(readr)
> bankloan <- read_csv('c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/bankloan.csv')
Parsed with column specification:
cols(
  ID = col_character(),
  年齡 = col_integer(),
  教育 = col_character(),
  工齡 = col_integer(),
  地址 = col_integer(),
  收入 = col_integer(),
  負(fù)債率 = col_double(),
  信用卡負(fù)債 = col_double(),
  其他負(fù)債 = col_double(),
  違約 = col_character()
)

2. 導(dǎo)入U(xiǎn)TF-8編碼的csv文件

# 可能會(huì)出現(xiàn)問題
> bankloan<-read.csv('c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/bankloan_UTF-8.csv',
                   header = TRUE,
                   encoding = 'UTF-8')  
# 推薦使用這種方式
> bankloan_utf_8<-readr::read_csv('c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/bankloan_UTF-8.csv')
> View(bankloan_utf_8)

3. 導(dǎo)入Excel格式的數(shù)據(jù)文件

library(readxl)
> bankloan_excel<-read_excel('c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/bankloan.xlsx',
                           sheet = 'bankloan')
> View(bankloan_excel)

4. 將數(shù)據(jù)存儲(chǔ)到本地,格式為csv甘畅,編碼方式為GBK

> library(ggplot2)
> head(diamonds)
# A tibble: 6 x 10
  carat cut       color clarity depth table price     x     y     z
  <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23  Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
2 0.21  Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
3 0.23  Good      E     VS1      56.9    65   327  4.05  4.07  2.31
4 0.290 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
5 0.31  Good      J     SI2      63.3    58   335  4.34  4.35  2.75
6 0.24  Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48
> write.csv(diamonds,
          file = 'c:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/diamonds.csv',
          fileEncoding = 'GBK',
          row.names = FALSE)

5. 使用相對(duì)路徑

> setwd('C:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/')
> bankloan_relative<-read_csv('./bankloan.csv')
> head(bankloan_relative)
# A tibble: 6 x 10
  ID      年齡 教育        工齡  地址  收入 負(fù)債率 信用卡負(fù)債 其他負(fù)債 違約 
  <chr>  <int> <chr>      <int> <int> <int>  <dbl>      <dbl>    <dbl> <chr>
1 ID_001    41 大專          17    12   176    9.3     11.4      5.01  是   
2 ID_002    27 未完成高中    10     6    31   17.3      1.36     4.00  否   
3 ID_003    40 未完成高中    15    14    55    5.5      0.856    2.17  否   
4 ID_004    41 未完成高中    15    14   120    2.9      2.66     0.821 否   
5 ID_005    24 高中           2     0    28   17.3      1.79     3.06  是   
6 ID_006    41 高中           5     5    25   10.2      0.393    2.16  否 

6. 導(dǎo)入其它統(tǒng)計(jì)軟件的數(shù)據(jù)

> library(haven)
> bankloan_spss <- read_spss('./bankloan.sav')
> head(bankloan_spss)
# A tibble: 6 x 9
   年齡 教育       工齡 居住年限  收入 負(fù)債率 信用卡負(fù)債 其他負(fù)債 違約     
  <dbl> <dbl+lbl> <dbl>    <dbl> <dbl>  <dbl>      <dbl>    <dbl> <dbl+lbl>
1    41 3            17       12   176    9.3     11.4      5.01  1        
2    27 1            10        6    31   17.3      1.36     4.00  0        
3    40 1            15       14    55    5.5      0.856    2.17  0        
4    41 1            15       14   120    2.9      2.66     0.821 0        
5    24 2             2        0    28   17.3      1.79     3.06  1        
6    41 2             5        5    25   10.2      0.393    2.16  0 

7. 將R內(nèi)置數(shù)據(jù)集存儲(chǔ)為spss軟件數(shù)據(jù)格式

> require(ggplot2)
> haven::write_sav(diamonds,path = './diamonds.sav')

結(jié)果展示

  • 用Rmarkdown 輸出分析報(bào)告
    內(nèi)容為Rmarkdown的用法概述,感興趣的可以深入學(xué)習(xí)Rmarkdown用法往弓,和簡書有相似之處疏唾。
  • 在 Jupyter notebook 中運(yùn)行R代碼
    Jupyter Notebook是一個(gè)Web應(yīng)用程序,允許您創(chuàng)建和共享包含實(shí)時(shí)代碼函似,方程槐脏,可視化和說明文本的文檔。 用途包括:數(shù)據(jù)清理和轉(zhuǎn)換撇寞,數(shù)值模擬顿天,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等等蔑担。
    ……
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牌废,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子啤握,更是在濱河造成了極大的恐慌鸟缕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件排抬,死亡現(xiàn)場離奇詭異懂从,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蹲蒲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門番甩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人届搁,你說我怎么就攤上這事缘薛∏嫌” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵掩宜,是天一觀的道長。 經(jīng)常有香客問我么翰,道長牺汤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任浩嫌,我火速辦了婚禮檐迟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘码耐。我一直安慰自己追迟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布骚腥。 她就那樣靜靜地躺著敦间,像睡著了一般。 火紅的嫁衣襯著肌膚如雪束铭。 梳的紋絲不亂的頭發(fā)上廓块,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音契沫,去河邊找鬼带猴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛懈万,可吹牛的內(nèi)容都是我干的拴清。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼会通,長吁一口氣:“原來是場噩夢啊……” “哼口予!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涕侈,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤苹威,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后驾凶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牙甫,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年调违,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窟哺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡技肩,死狀恐怖且轨,靈堂內(nèi)的尸體忽然破棺而出浮声,到底是詐尸還是另有隱情,我是刑警寧澤旋奢,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布泳挥,位于F島的核電站,受9級(jí)特大地震影響至朗,放射性物質(zhì)發(fā)生泄漏屉符。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一锹引、第九天 我趴在偏房一處隱蔽的房頂上張望矗钟。 院中可真熱鬧,春花似錦嫌变、人聲如沸吨艇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽东涡。三九已至,卻和暖如春倘待,著一層夾襖步出監(jiān)牢的瞬間软啼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工延柠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祸挪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓贞间,卻偏偏與公主長得像贿条,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子增热,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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

  • 最近在復(fù)習(xí)python的科學(xué)計(jì)算整以,突然心血來潮,想看看R的數(shù)據(jù)處理和python的區(qū)別在哪峻仇,所以就有了這篇文章公黑。 ...
    若與閱讀 2,097評(píng)論 1 24
  • 工欲善其事,必先利其器摄咆》惭粒總結(jié)一下,方便多了吭从。R語言還是很牛逼的朝蜘,可以干很多事情。有一把順手的刀還是很重要的涩金。 0....
    Liam_ml閱讀 4,618評(píng)論 1 60
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • 內(nèi)在差異外在體現(xiàn)
    陳東Growth閱讀 126評(píng)論 0 0
  • 下班前我并沒有和其他同事一起去吃飯谱醇,而是去健身房跑步去了暇仲,堅(jiān)持了快3周,體重沒減下來多少副渴,但是把自己感動(dòng)的不行奈附,覺...
    木頭與琉璃閱讀 269評(píng)論 0 0