从零开始学R(四)——常用命令:帮助,文件导入与导出与基本操作

R的常用命令

R的命令非常多,但是有一些命令是非常常用的,在这里我做一个汇总,便于大家使用。(Tips:关于下载和安装R的package以及工作目录的获得与设置命令在第二篇已经聊过,此时就不再赘述了,详见从零开始学R(二)——R语言基础)

1、帮助命令

R是一款很优秀的统计软件,这样评价的一个重要原因是,使用者可以通过R自身来学习R。例如,如果我们想要了解数据框转换命令as.data.frame(),我们可以输入如下代码

help("as.data.frame") 
?"as.data.frame"

在RStudio中,我们可以在右下角(前提是没有调整过RStudio的布局)的界面得到这个函数的具体信息,包括它的描述(Description),使用方法(Usage),语句(Arguments),细节(Details)以及参考文献(References)等。有时候对于有些命令,我们可能阅读上述信息之后还是不熟悉,此时我们可以使用example()函数来让R为我们做出示范,这就是为什么我们能够利用R进行自学的原因。

对于部分函数来说,帮助命令中的引号可以省略,但是由于一些函数中存在特殊字符,此时就必须使用引号。比如?>的运算结果就会出错,而?">"则会显示出>函数的帮助页面。

如果我们不太清楚我们想要找的函数的名字是什么,但是我们知道这个函数是用来做什么的,我们可以采用模糊搜索。比如我们想了解,什么函数能够帮助我们生成一个多元正态分布的随机变量函数,我们就可以使用如下命令

help.search("multivariate normal")
??"multivariate normal"

有时候我们可能想了解一个package的用法,虽然我在这里推荐小伙伴们直接去CRAN寻找相关package的介绍文件,但是我们也可以在R中直接去搜索,了解基本信息

help(package = "package.name")

2、表格型文件的导入与导出

使用R的数据分析师或者数据科学家通常是对现实世界的某些数据进行分析,因此,在完成数据收集后,我们需要将所收集到的数据导入的R中进行整理与分析。我们在这里重点介绍一些常用的文件导入方式。

CSV文件

CSV(Comma-Separated Values)文件一种表格存储类型的文件,数据之间采用逗号(或其他字符)进行分隔。R的通用package(R自带)中有读取csv文件的命令

data <- read.csv("working directory/name.csv")
data <- read.csv2("working directory/name.csv")

第一个命令的分隔符默认为逗号",",第二个命令的分隔符默认为分号";"。
此外,我们还可以用另一个命令来读取csv文件

data <- read.table("working directory/name.csv",
                   sep = ",")

这个命令是用来读取表格的命令,sep参数是分隔符,一般csv文件是逗号,所以这里用逗号。

RDS文件

RDS(Report DataSource File)文件也可以利用R的通用package直接打开,不过这个文件类型的普及率并不是很高,在一些公开数据中有时会发现这种类型的数据

data <- readRDS("working directory/name.rds")

Excel文件

微软的Excel其实也能很好地进行数据分析与数据可视化,当然我们也可以用R对Excel文件进行读取与处理,但是这时我们就需要安装新的packagereadxl

install.packages(readxl)
library(readxl)
data <- read_xls("working directory/name.xls")
data <- read_xlsx("working directory/name.xlsx")

其他数据软件的文件

数据分析软件很多,在这里我们介绍两个常用的数据分析软件:SPSS和stata。SPSS导出的数据是.sav后缀,stata导出的数据是.dta后缀,读取这两种类型的文件也需要下载一个新的packageforeign

install.packages(foreign)
library(foreign)
data <- read.spss("working directory/name.sav")
data <- read.dta("working directory/name.dta")

但是,foreign这个package中,只能读取stata12及以下版本导出的数据,而对于stata13及以上版本的数据是无法识别的,此时又需要一个新的packagereadstata13

install.packages(readstata13)
library(readstata13)
data <- read.dta13("working directory/name.dta")

文件导出

表格型数据的以csv格式进行导出较为方便

write.table(name, file = "file.csv", sep = ",")

题外话

由于R是一款开源软件,因此同一功能会有很多不同的package和命令来实现,比如haven以及readr也都是能够用来读取相关数据文件的package。所以小伙伴们在使用的时候,只需要选择自己熟悉的命令即可。

此外,由于大数据技术,机器学习与人工智能算法的飞速发展,很多非结构性数据,比如文本,图片,音频数据等都成为数据分析的对象,但由于我在这里仅介绍一些基本的内容,更进阶的内容我会在以后以专题形式向大家做介绍。

3、基本操作

这里所说的基本操作指的是对向量、矩阵和数据框等数据存储对象的操作。

length()

length()函数顾名思义是用来查看对象的长度。
对于向量来说,这个函数可以查看向量的长度
对于矩阵来说,这个函数可以查看矩阵元素的数量
对于数据框来说,这个函数可以查看变量个数

dim()

dim()函数是dimension,可以查看对象的维度数据,结果是一个包含维度数据的一维向量。
对于矩阵来说,这个函数可以查看矩阵的行数和列数
对于数据框来说,这个函数可以查看数据框的观测值数量和变量个数

str()

str()函数是structure,可以查看对象的结构数据
对于向量来说,向量是一维结构,因此这个函数可以查看向量中元素的存储类型和具体情况
对于矩阵来说,这个函数可以查看矩阵中元素的存储类型和具体情况
对于数据框来说,这个函数可以查看数据框中每个变量的存储类型、观测值数量和变量个数

summary()

summary()函数可以将某个对象的情况进行整理并呈现出来
对于向量来说,这个函数可以查看向量的长度和元素的存储类型
对于矩阵和数据框来说,这个函数可以查看这两个对象每一列的均值、最小值、四分位数、中位数和最大值

typeof(),mode()和class()

typeof()mode()函数都可以用来查看对象的存储类型,但是其中有一些小区别,比如,如果对象是数值的话,前者会输出integerdouble,而后者则会输出numeric

class()则是查看目标对象的类属性(比如经典的白马非马辩论,马指一个类,而白马指一个具体的存在),因此如果我们对矩阵和数据框使用class()函数的话,我们得到的结果就是"matrix"和"data.frame"而不是其中的变量类型。

all()和any()

这两个函数是逻辑判断函数,检验向量、矩阵以及数据框中的元素是否全部all()或者任一any()满足某个条件

> x <- 1:10
> any(x > 8)
[1] TRUE
> any(x > 100)
[1] FALSE
> all(x > 8)
[1] FALSE
> all(x > 0)
[1] TRUE

which()和subset()

which()用来筛选向量中满足一定条件的元素的位置
subset()用来筛选向量中满足一定条件的元素

> x <- 5:10
> which(x^2 < 49)
[1] 1 2 
> subset(x^2 < 49)
[1] 5 6

但是这二者和从零开始学R(三)——基本计算提到的中括号筛选的区别在于对缺失值的处理,比较下面两个案例

> x <- c(1:3, NA, 4)
> x[x > 3]
[1] NA 4
> subset(x, x > 3)
[1] 4
> which(x > 3)
[1] 4

基本的统计量

mean(x)       #均值
weighted.mean(a,wt)
              #加权均值,a是对象向量,wt是权重向量
median(x)     #中位数
sd(x)         #标准差
var(x)        #方差
sum(x)        #累加求和
prod(x)       #累乘求积
cumprod(x)    #输出每一次累乘的结果
rnorm(n, mean = x, sd = y)
#随机生成一个样本量为n,服从均值为x,标准差为y的正态分布样本
rbinom(n, x, y)
#随机生成一个样本量为n,服从次数为x,成功概率为y的二项分布样本

尽管有单独计算的命令,但是正如前文所说,例如summary()就可以计算出很多的统计量。

今天就说到这里啦

你可能感兴趣的:(数据分析)