R语言数据科学入门_松鼠学堂课程笔记1

前言:
网易云课堂R语言数据科学入门听课笔记,主要讲述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. 注释:

  • “#”后面的内容表示注释
  • 如果有多行注释则在每一行注释前加上“#”
  • 在注释行结尾加上4个“#”,则这一行会被当做一个节标题

2. 变量赋值:

  • “<-” 表示变量赋值
  • “=” 表示参数赋值

3. 数据调用:

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

打开文件乱码情况,解决方案:
file > reopen with encoding > UTF-8 / set as default

4. 查看帮助文档:

  • help(ggplot2) #对包使用help,查看包的信息
  • help("CO2") #对函数使用help,查看函数使用方法
  • help(ggplot) #对内置数据集使用帮助文档,查看数据集的信息
  • example(ggplot) # 查看ggplot函数用法示例
Rplot.png

5. 使用R的内置数据集

  • data() #用于查看R语言的内置数据集
  • head(women) #直接键入数据集名称查看数据集
  • install.packages("gcookbook") # 安装gcookbook
  • data(package =.packages(all.available =TRUE))#查看已安装的所有包中的数据
  • library(gcookbook) #使用其它包中的数据,需要先载入相应的R包
  • head(worldpop) #World population estimates from 10,000 B.C. to 2,000A.D.

什么是R包?

R package, 中文是 R 包. R 包是一种包装 R 代码, 数据和文档的方式. R 包是 R 语言强大的扩展性和灵活性的基础, R 发行版本身就包括三十多个高质量的 R 包. 一个R包中包含了一组可以完成特定任务的程序代码;通常这种特定任务是会重复执行的,并且重复执行时,任务内容是相似或者相同的。 在使用R分析数据时,其中一部分代码是我们自己写的,还有很大一部分代码是通过调用其他人写好的R包实现的。如果没有这些第三方R包,我们的生活将会在加班和过度劳累中失去意义。

1. 通过菜单点击安装R包

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

2. 通过命令安装R包

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

3. 切换R包镜像,以便更快下载R包

  • 3.1 通过菜单操作
  • 3.2 通过程序命令设定
# R包下载镜像列表
https://cran.r-project.org/mirrors.html
# 全局生效
options(repos = 'https://mirrors.ustc.edu.cn/CRAN/')    
# 只在下载此R包时生效
install.packages('ggplot2',repos ='https://mirrors.ustc.edu.cn/CRA

4. 常用的R包

  • 数据加载
    • readr,readxl,haven: 存取本地文件
    • RODBC,RMySQL,RPOstgresSQL, RSQLite :从数据库中存取数据
  • 数据处理
    • dplyr - 必备数据处理工具,对数据集做summarize, join等处理。
    • tidyr - 将数据集转化成格式更工整的数据集,数据清洗。
    • stringr - 对字符串类型的数据进行正则表达式处理的工具。
    • lubridate - 处理日期和时间类型数据的工具
  • 数据可视化
    • ggplot2: R中最著名的可视化工具包

5. R知识体系概览

image.png

数据文件导入和导出点我观看视频

部分windows系统用户,无法识别中文,需要改成英文字符,像我“R语言数据科学”就改成了“yuyanshujukexue”

1. 导入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(),
  负债率 = col_double(),
  信用卡负债 = col_double(),
  其他负债 = col_double(),
  违约 = col_character()
)

2. 导入UTF-8编码的csv文件

# 可能会出现问题
> 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. 导入Excel格式的数据文件

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

4. 将数据存储到本地,格式为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. 使用相对路径

> setwd('C:/Users/Administrator/Documents/01-Ryuyanshujukexue/data/')
> bankloan_relative<-read_csv('./bankloan.csv')
> head(bankloan_relative)
# A tibble: 6 x 10
  ID      年龄 教育        工龄  地址  收入 负债率 信用卡负债 其他负债 违约 
  <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. 导入其它统计软件的数据

> library(haven)
> bankloan_spss <- read_spss('./bankloan.sav')
> head(bankloan_spss)
# A tibble: 6 x 9
   年龄 教育       工龄 居住年限  收入 负债率 信用卡负债 其他负债 违约     
  <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内置数据集存储为spss软件数据格式

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

结果展示

  • 用Rmarkdown 输出分析报告
    内容为Rmarkdown的用法概述,感兴趣的可以深入学习Rmarkdown用法,和简书有相似之处。
  • 在 Jupyter notebook 中运行R代码
    Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,方程,可视化和说明文本的文档。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。
    ……
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 最近在复习python的科学计算,突然心血来潮,想看看R的数据处理和python的区别在哪,所以就有了这篇文章。 ...
    若与阅读 2,093评论 1 24
  • 工欲善其事,必先利其器。总结一下,方便多了。R语言还是很牛逼的,可以干很多事情。有一把顺手的刀还是很重要的。 0....
    Liam_ml阅读 4,612评论 1 60
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,916评论 2 89
  • 内在差异外在体现
    陈东Growth阅读 125评论 0 0
  • 下班前我并没有和其他同事一起去吃饭,而是去健身房跑步去了,坚持了快3周,体重没减下来多少,但是把自己感动的不行,觉...
    木头与琉璃阅读 263评论 0 0