R语言入门基础
R语言入门基础

R语言入门基础

R语言的基础我分为两个部分去理解学习

  • 软件概念层面上的知识理解
  • R编程语言上的知识学习

R语言的软件概念

R软件首先包含了两个重要的组成部分,一是R软件;二是各种各样丰富的R包。
所有我们在使用R软件时最先要明确的就是我们使用的R软件版本R数据库路径(library路径)
因为R是一个绝对开源的软件,R包很多都是程序员无私奉献提供的开源结果。每个人编写R包基于的R版本不同,所以R包的适配性就会有所不同。
在开始R语言工作之前就一定要确定好你所使用R版本和R数据库版本是否一致(不一定必须一致,但一定要是可以兼容的)。

在R软件中
使用version可以查看当前正在使用哪个版本的R软件
使用.libPaths()可以查看当前使用了哪些R数据库
使用.libPaths(“/home/software/R/4.0.3/lib64/R/library”)可以指定使用一个新的数据库路径(只有在数据库路径存在的包才可以被加载、调用)
使用library()可以查看当前使用的数据库路径中都有哪些R包可以使用。

Tips:在linux系统中,还可以使用export R_LIBS=/home/software/R/4.0.3/lib64/R/library命令,在系统层面上直接指定用那个R数据库路径。

R软件在base包中有很多系统层面上的对应函数如:version、getwd、setwd、options……具体可以在R中使用 ?library(help= “base”) 查看。
options()是一些默认参数的控制,可通过names(options())查看,是一个非常重要的调控全局的参数。

R编程语言基础

数据集和数据结构

数据集通常是由数据构成的一个矩形数组,行表示观测、列表示变量。
观测(observation)和变量(variable)、记录(recode)和字段(field)、示例(example)和属性(attribute),不同行业的叫法不同,本质是一样的。

R拥有多种存储数据的对象类型,包括标量、向量、矩阵、数组、数据框、列表

向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组。

a <- c(1,2,3,5,-1,-5,6)
b <- c("one","two","three")
c <- c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE)

#可以通过names函数给向量里的每个值命名。
 names(a) <- c("A","B","C","D","E","F")

标量是一个只含一个元素的向量,一般用于保存常量。

通过方括号[]加上元素的位置可以快速访问向量中的元素(即index索引):a[3]、a[c(1,3,5)]、a[2:6] 都是正确的用法。

矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型、逻辑型)。通过matrix()来建立。

a <- matrix(1:20,nrow = 4,byrow = T,dimnames = list(rnames=c("R1","R2","R3","R4"),cnames=c("C1","C2","C3","C4","C5")))
class(a)
str(a)
attributes(a)

#矩阵可以通过colnames、rownames给矩阵每行每列添加名字。
#另一种常见的创建矩阵的方法是通过attr修改属性的方式创建:
x <- 1:10
attr(x,"dim") <- c(2, 5)# 这种方法在后面介绍attr、attributes时在详细介绍。

矩阵需要注意的点事:一个矩阵里每个元素的类型必须相同、矩阵可以有行名、列名colnames、rownames,矩阵的dimension一定是二维。

数组

数组与矩阵类似,但维度可以大于2,通过array()函数创建(简单理解就是更高维度矩阵)。
和矩阵一样,每个元素的类型必须相同。

a <- array(1:24,dim = c(2,3,4),dimnames = list(c("ROW1","ROW2"),c("COL1","COL2","COL3"),c("A","B","C","D")))
class(a)
str(a)
attributes(a)
#属组依然可以通过attr、attributes方式来修改他的各种属性。

数据框

数据框是R中使用最频繁的一类数据结构,他可以同时包含数值型、字符型、因子型数据。(每一列的数据类型必须保持一致)

选取数据框中的元素有若干方法,但有些要注意的细节:以base包自带的mtcars数据框为例

mtcars[1]
mtcars[1:2]
mtcars$mpg
mtcars[,1]       # mtcars[,1,drop=F]
mtcars[,"mpg"]   # mtcars[,"mpg",drop=F]
mtcars[,1:2]   
#要注意的点就是在指定一列的时候R会把提取的一列数据框自动的转换成向量格式,从而失去data.frame的一些属性,这时就需要drop=F参数。

attach()、detach()用于绑定和解绑data.frame
with()也可以实现相同的功能。

tips:部分R包会使用叫做“tibbles”的数据框,是data.frame的一个魔改格式。是在data.frame基础上增加了一些新的功能。

因子

类别(名义型)变量和有序类别(有序型)变量在R被称为因子。factor()以一个整数向量的形式存储类别,整数的取值范围是[1…k],(其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。

sex <-factor(sex,levels=c(1,2),labels=c("Male","Female"))

列表

列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或者成分component)的有序集合。列表允许整合若干对象到单个对象名下。例如:某个列表中可以有若干个向量、矩阵、数据框,甚至是列表。用list()创建。
列表要清楚内容的调用方法、调用出的内容、属性。[]、[[]]调用的返回结果是不一样的内容。

处理数据对象的常用函数

函数用途
length(object)显示对象中元素/成分的数量
dim(object)显示对象的维度
str(object)显示对象的结构
class(object)显示对象的类/类型
mode(object)显示对象的模式
names(object)现实对象各成分的名字
c(object,object,…)把对象合并入一个向量
cbind(object,object,…)按列合并对象
rbind(object,object,…)按行合并对象
object输出对象
head(object)列出对象的开头部分
tail(object)列出对象的结尾部分
ls()显示当前环境的对象列表
rm(object,object,…)删除环境中的对象:rm(list=ls())
newobject <- edit(object)编辑对象并存为新对象
fix()直接编辑对象
attr(object, which) <- value获取或设置对象的特定属性
attributes(object)列出对象全部属性
标有颜色的函数是我在平时使用频繁的几个操作。

统计分析与绘图

R base中的统计绘图部分不做过多介绍,新手可以参照R base官方手册学习。
《R语言tidyverse软件包学习》这个系列会更新基于tidyverse软件包工具集的统计绘图学习。

 #

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注