R语法
生存
配置
注释
- R语言的注释和其他脚本语言类似,使用
#
注释行,但是R没有 多行注释语法 - 可以使用
if(FALSE)
语句进行“注释”1
2
3if(FALSE) {
"comments"
}
工作路径
1 | getwd() |
变量
- R中有效的变量名称由字母、数字、点、下划线组成,变量名以 字母、后不跟数字的点开头
- R中变量为动态类型,可多次更改变量数据类型
- 变量无法被声明,在首次赋值时生成
赋值
1 | var.1 = c(0, 1, 2, 3) |
搜索
ls
函数可以搜索当前工作空间中所有可用变量
1 | ls( |
删除
rm
函数可以删除变量
1 | rm(var.3) |
数据导入
edit
1 | mydata <- data.frame( |
read.table
1 | DF <- read.table( |
说明:从带分隔符的文本文件中导入数据
参数
header
:第一行是否包含变量名sep
:分隔符,默认数个空格、tab、回车、换行row.names
:指定行标记符col.names
:指定DF对象列名na.strings
:表示缺失值的字符串向量,其包含字符串 读取时转为NAcolClasses
:设置DF对象每列数据模式- “NULL”表示跳过
- 长度小于列数时开始循环
- 读取大型文本可以提高速度
quote
:字符串划定界限,默认"'
StringAsFactor
:标记字符向量是否转换为factorcolClasses
优先级更高- 设为FALSE可以提升读取速度
text
:读取、处理的字符串,而不是file
常用函数
1 | print() |
数据模式(类型)
- 数据模式是指R存储数据的方式
- 即从存储角度对R数据对象划分
class
函数就是返回数据模式(类型)
Logical
只需要1byte存储
TRUE/T
FALSE/F
Integer
占用2-4byte
2L
、0L
Numeric
可进一步分
float
占用4bytedouble
占用8byte
R中数值型数据默认为double
12.3
、4
Complex
comlplex
:3+2i
Character
R中'
、"
对中的任何值视为字符串
'
、"
必须在开头、结尾成对存在'
、"
结尾的字符串中,只能插入对方
paste
连接多个字符串
1 | Chars = paste( |
format
将数字、字符串格式为特定样式
1 | Chars = format( |
nchar
计算包括空格在内的字符串长度
1 | int = nchar( |
toupper
、tolower
改变字符串大小写
1 | chars = toupper( |
substring
获取字符串子串
1 | chars = substring( |
- R对象是指可以赋值给变量的任何事物,包括常量、数据结构、 函数
- 对象都拥有某种模式,描述对象如何存储
- 对象拥有某个“类”,向
print
这样的泛型函数表明如何处理 此对象
Raw
raw
:v <- charToRaw("Hello")
(byte类型)
结构角度划分R对象
Vector
用于存储数值型、字符型、逻辑型数据的一维数组
- 单个向量中的出数据必须拥有相同的类型、模式(数值型、字符 型、逻辑型)
- R中没有标量,标量以单元素向量形式出现
1 | apple <- c("red", "green", "yellow") |
创建向量
1 | rep(start: end, each=repeat_time) |
访问向量元素
1 | a[1] |
Matrix
二维数组:组织具有相同存储类型的一组变量
- 每个元素都拥有相同的模式(数值型、字符型、逻辑型)
创建矩阵
1 | mtx <- matrix( |
矩阵信息
1 | dim(mtx) |
访问矩阵元素
1 |
Array
类似于矩阵,但是维度可以大于2
- 其中元素也只能拥有一种模式
1 | arr <- array( |
Data.Frame
数据帧是表、二维数组类似结构
- 不同的列可以包含不同的模式
- 每列包含一个变量的值,每行包含来自每列的一组值
- 数据帧的数据可是数字、因子、字符串类型
1 | df <- data.frame( |
统计性质
1 | str(emp.data) |
筛、删、减
1 | emp.data.cols <- data.frame( |
拼、接
rbind
结合两个DF对象行
1 | city <- c("Tampa", "Seattle", "Hartford", "Denver") |
merge
根据两DF列进行merge
1 | lirary(MASS) |
melt
、cast
1 | library(MASS) |
绑定
attach
、detach
1 | attach(emp.data) |
with
1 | with(emp.data, { |
Factor
分类变量、有序变量在R中称为因子,其决定了数据的分析方式、 如何进行视觉呈现
1 | fctr <- factor( |
factor
以整形向量的形式存储类别值- 整数取值范围为
1~k
,k
为定性(分类、有序)变量中 唯一值个数
- 整数取值范围为
- 同时一个由字符串(原始值)组成的内部向量将映射到这些整数
- 分类变量:字符串映射的整数值由字母序决定
- 有序变量:按字母序映射可能与逻辑顺序不一致,可以使用
参数
levels
指定顺序
List
一些对象、成分的有序集合
- 允许整合若干(可能无关)的对象到单个对象下
- 很多R函数结果运行结果以列表形式返回,由调用者决定使用 其中何种成分
1 |
|
运算符
算术运算符
算术操作符作用与向量的每个元素
1 | v <- c(2, 5.5, 6) |
关系运算符
比较两个向量的相应元素,返回布尔值向量
1 | v <- c(2, 5.5, 6, 9) |
逻辑运算符
只适用于逻辑、数字、复杂类型向量,所有大于1的数字被认为是
逻辑值TRUE
1 | v <- c(3, 1, TRUE, 2+3i) |
其他运算符
1 | t <- 2: 8 |
R语句
条件
1 | if |
循环
1 | repeat |
函数
1 | func_name <- function( |
R内置函数
1 | print(seq(32, 44)) |
自定义参数
1 | new.function_1 <- fucntion(){ |
函数功能延迟计算
1 | new.function <- function(a, b){ |
包
R语言包是R函数、编译代码、样本数据的集合
- 存储在R环境中名为
library
的目录下 - 默认情况下,只有R安装时提供默认包可用,已安装的其他包 必须显式加载
1 | .libPaths() |
安装包
直接从CRAN安装
1
install.package("pkg_name")
手动安装包:从https://cran.r-project.org/web/packages/available_packages_by_name.html 中下载包,将zip文件保存
1
install.package(/path/to/pkg.zip, repos=NULL, type="source")
加载包
1 | library("pkg_name", |