[编程经验]R语言入门及描述性统计分析方法

好吧,我承认,最近都没好好学习了,事情比较多,好几天晚上我都会写下标题,然后就没有然后了,今天再不能忍了,决定来一发。但是,我觉得还是推文的质量要比数量更加重要,不然一个是浪费自己的时间,也是浪费大家的时间。所以虽然很忙,但是我还是会尽力做到解释的完美一点~.~。

今天要给大家讲讲R语言,主要是入门基础及简单的统计分析入门。

R语言其实算是我正式接触编程语言的第一门语言,大学学的C++,matlab简直是水到家了。所以刚开始学R语言的时候,我很痛苦,你知道吗。大约经历了1个月的磨合期,逐渐对R有了点认识,知道怎么去学了,都有哪些东西,当然最开始还是找度娘,看什么书,怎么安装等等之类的abc的问题。和大多数人学习的入门书籍一样,我也是从《R语言实战》这本书开始的,但是现在看来,我觉得这本书,只需要看前7章的内容就可以了,因为后面的是涉及到具体模型的内容,如果你没有一个具体的实际问题去解决的话,学了也作用不大,毕竟我们不是为了考试。好了,先扯这么多,下面进入正题。

# 如何使用R

## 安装

Windows

下载地址:

https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/

Windows的安装比较简单了,.exe文件,基本都是next就ok了。

需要说的是,有时候我们需要使用某个package的时候,R报错说不支持当前R版本,这时候,就需要安装比较老的R版本,这里给一个旧版本的R链接,需要哪个版本的可以直接下。

https://cran.r-project.org/bin/windows/base/old/

还有一个问题,就是怎么更新R,现在R的最新版本是3.4.1.那么当下一个版本出来的时候,怎么更新呢。最笨的办法就是下载新版本,然后把旧版本卸载了。但是当你使用了一段时间R以后,必然会安装很多个packages,R安装包并不大,但是加上packages的话,总共就很大了,我记得我最多的时候,安装了好几百个packages。这里要教大家一招是,在卸载R之前,把R安装目录中的library文件夹先复制出来另存,然后安装完新版本的R以后,在把其中的文件复制到新安装的library文件夹下面。一般在windows中,R的安装目录默认为:

C:\ProgramFiles\R\R-3.4.0\library

然后是怎么在Ubuntu中安装,也可以参考文档:

https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu/README.html

依次执行下面三条命令,就ok了。

sudo apt-get update

sudo apt-get install r-base

sudo apt-get install r-base-dev

然后,在Ubuntu中安装完R之后,直接在shell里面输入R,就会进入到R环境中,但是这样写代码是很累的,所以这里推荐大家使用Sublim Text 作为R的Ubuntu中的IDE。环境搭建也很简单,主要是安装SublimeREPL这个拓展包,在sublim中快捷键Ctrl+shift+P输入install,会出来install package,然后输入SublimeREPL就可以安装了。安装完了以后,在

Preferences > Package Settings >SublimeREPL > Settings-User

输入以下内容:

{

"default_extend_env": {"PATH": "{PATH}; 这里写你的安装目录"},

"show_transferred_text": true

}

在windows在还有一个工具可以使用,就是R的IDE,相比于Python的IDE数量,比较好用的IDE也就是Rstudio了。,直接下载安装就对了。

地址:https://www.rstudio.com/products/rstudio/download/

关于Rstudio的使用,我就想说一个问题,怎么设置R的编译器。选择

Tools—>Global options

可以选择不同的R版本,尤其是对于安装了不同版本的R用户来说,就很关键。当然如果你只安装了一个版本的R,是不需要设置的,Rstudio在安装的时候,会自动帮我们设置好。

好,其他的都可以先不用管,到这里环境就搭好了。

然后对于入门来说,基本的R概念,变量,数据结构等今天就不展开讲了,下面讲几种R中进行描述性统计分析的方法。什么是描述性统计分析呢?简单说就是根据样本计算样本统计量。比如均值,最大值,最小值,方差,分位数,偏度,蜂度等。然后通过例子,你也可以大致了解一下,R语言的一些使用方法和特点。

R中单行注释用#来表示,不支持多行注释,如果要多行注释,只能使用多个#。还有一个要说的是,Rstudio中多行注释的快捷键是Ctrl+Shift+C,取消注释也是Ctrl+Shift+C。关于快键键,强烈推荐大家自己去百度一下,把常用的记住,可以提高效率。

# 设置R工作目录,setwd

setwd("F:/R_learn/")

# R语言的强大之处很重要的原因是R有很多packages,

# 这些Packages给我们提供了非常便利的工具。所以首先要

# 学会怎么安装 packages,用下面这个命令,相当于Python的pip install 。

install.packages("psych")

# 安装好了以后,就需要加载进来,相当于Python的import。

library(psych)

# 读取csv文件,R

test_data <-read.csv("da.csv", header = F, sep = ",")

# 查看数据类型

class(test_data)

# [1] "data.frame"

# 查看数据前5行

head(test_data)

# V1 V2 V3

# 1 25 26 27

# 2 36 37 38

# 3 47 48 49

# 4 58 59 60

# 5 69 70 71

# 6 80 81 82

# R中数据框的索引,使用美元符号,后面加列名。

col1 <- test_data$V1

# 描述性统计分析

summary(col1)

# Min. 1st Qu. Median Mean 3rd Qu. Max.

# 25.00 44.25 63.50 63.50 82.75 102.00

summary(test_data)

# V1 V2 V3

# Min. : 25.00 Min. : 26.00 Min. : 27.00

# 1st Qu.: 44.25 1st Qu.: 45.25 1st Qu.: 46.25

# Median : 63.50 Median : 64.50 Median : 65.50

# Mean : 63.50 Mean : 64.50 Mean : 65.50

# 3rd Qu.: 82.75 3rd Qu.: 83.75 3rd Qu.: 84.75

# Max. :102.00 Max. :103.00 Max. :104.00

# 然后我们使用psych包提供的另外一个函数,看一下

describe(col1)

# vars n mean sd median trimmed mad min max range skew kurtosis se

# 1 1 8 63.5 26.94 63.5 63.5 32.62 25 102 77 0 -1.65 9.53

describe(test_data)

# vars n mean sd median trimmed mad min max range skew kurtosis se

# V1 1 8 63.5 26.94 63.5 63.5 32.62 25 102 77 0 -1.65 9.53

# V2 2 8 64.5 26.94 64.5 64.5 32.62 26 103 77 0 -1.65 9.53

# V3 3 8 65.5 26.94 65.5 65.5 32.62 27 104 77 0 -1.65 9.53

# 可以看到describe比summary多了几个,trimmed表示截尾均值,skew表示偏# 度, kurtosis表示峰度,se表示标准误差;

好了,到这里,R入门就这么多了,通过几个简单的例子,你应该掌握R的安装与使用,设置工作目录,如何安装packages,如何更新R,以及读取文件等操作。

本文分享自微信公众号 - 机器学习和数学(ML_And_Maths)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏自然语言处理

数据分析:基于Python的自定义文件格式转换系统

无论读者现在是做数据挖掘、数据分析、自然语言处理、智能对话系统、商品推荐系统等等,都不可避免的涉及语料的问题即大数据。数据来源无非分为结构化数据、...

22920
来自专栏大数据文摘

手把手 | 嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!

30450
来自专栏小灰灰

Quick-Task 动态脚本支持框架之结构设计篇

文章链接:https://liuyueyi.github.io/hexblog/2018/07/23/180723-Quick-Task-动态脚本支持框架之结构...

12730
来自专栏Java3y

操作系统第六篇【存储器管理】

50770
来自专栏IT派

爬虫大神,又出新招

几乎所有玩爬虫的人,一定会用requests库,这个库的作者是大名鼎鼎的Kenneth Reitz 。牛逼的一塌糊涂,最近我浏览它的网站,发现他又出新招,一个把...

16530
来自专栏安恒网络空间安全讲武堂

翻译 | python利用shodan搜集信息

文中提及的部分技术、工具可能带有一定的攻击性、仅供安全学习和教学用途,禁止非法使用! 安装 为了开始使用Shodan的Python库,首先要确保你已经收到了AP...

490100
来自专栏吉浦迅科技

DAY40:阅读Memory Fence Functions

The CUDA programming model assumes a device with a weakly-ordered memory model, ...

10040
来自专栏FreeBuf

手工检测Web应用指纹的一些技巧

0x01 Web 应用技术概览 1.1 架构 大多数 web 应用可以粗略划分为三个组件(component)。 1、客户端, 大多数情况下是浏览器。 2、服务...

65160
来自专栏Java成长之路

java中的异步处理和Feature接口(一)

想象这样一个场景:你可能希望为你的法国客户提供指定主题的热点报道。为实现这一功能,你需要向 谷歌或者Twitter的API请求所有语言中针对该主题最热门的评论,...

39420
来自专栏北京马哥教育

爬虫大神,又出新招

21950

扫码关注云+社区

领取腾讯云代金券