⒈类型及类型转换函数

R中原子类型包括:数值型(numeric,包括双精度型(double)和整数型(integer))、字符型(character)、逻辑型( logical )、复数型(complex)、原生型(raw,字节)

R中封装类型包括:向量(vector),矩阵(matrix),数组(array),数据框(data.frame),列表(list)

逻辑向量

逻辑型向量只有三种取值类型:TRUE, FALSE, NA

1:10 %% 3 == 0

#> [1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE

c(TRUE, TRUE, FALSE, NA)

#> [1] TRUE TRUE FALSE NA

数值向量

数值向量包括:double、integer

typeof(1)

#> [1] "double"

typeof(1L)

#> [1] "integer"

1.5L

#> [1] 1.5

double类型只是近似值

x <- sqrt(2) ^ 2

x

#> [1] 2

x - 2

#> [1] 4.44e-16

integer类型可能包含一个特殊的值:NA(missing data)

double类型可能包含四个特殊的值:NA、Inf、-Inf、NaN(Not a Number)

c(-1, 0, 1) / 0

#> [1] -Inf NaN Inf

缺失值

NA:向量中缺失的元素

NULL:向量的缺失,NULL相当于长度为0的向量

is.null(NULL)

#> [1] TRUE

is.null(NA)

#> [1] FALSE

is.na(NULL)#

> logical(0)

is.null(c(1, 2, 3, NA))

#> [1] FALSE

is.na(c(1, 2, 3, NA))

#> [1] FALSE FALSE FALSE  TRUE

length(c(1, 2, 3, NA))

#> [1] 4

length(c(1, 2, 3, NULL))

#> [1] 3

查看类型

class():变量的类别

typeof():变量类型细分

mode():变量类型

storage.mode():存储模式

str():紧凑显示内部结构

显示变量类型的函数也可用于转换变量类型

判断类型

判断原子类型

is.logical()

is.numeric()

is.double()

is.integer()

is.character()

判断封装类型

is.vector()

is.factor()

is.matrix()

is.data.frame()

is.list()

类型转换

as.vector

as.factor

as.matrix

as.data.frame

as.list

数学函数

基本运算符

+: 5+3; "+" (5, 3); sum; cumsum(c(2,3))(累加)

-: 5-3; "-" (5, 3); diff(c(3, 5, 6))(邻居差)

*: 5*3; “*” (5, 3); prod(c(5,3)); cumprod(c(5,3))(累乘)

/: 5/3; "/"(5, 3)

%%: 5%%3 (求余)

%/%: 5%/%3 (求整)

^: 5^3; "^"(5, 3)

sqrt: sqrt(4:9);

exp: exp(4:9)

log: log(4:9, base=exp(1));log10(2)

abs: abs(-4:9)

比较运算符

==, >, <, >=, <=, !=

逻辑运算符

&, |, !, &&, ||

&与&&

两者都表示“与”运算,但是&&运算符只运算第一个表达式(或向量第一个元素),而&对所有表达式都得判断。

|与||两者都表示“或”运算,但是||运算符只运算第一个表达式(或向量第一个元素),而|对所有表达式都得判断。

四舍五入相关函数

round: round(seq(-2, 4, by = .5), digits=2); 四舍五入,小数点后保留2位(四舍六入五成双)

ceiling: ceiling(seq(-2, 4, by = .5)); 向上取整

floor: floor(seq(-2, 4, by = .5)); 向下取整

trunc: trunc(seq(-2, 4, by = .5)); 向0取整

signif: signif(pi*10^(-2:3), digits=2); 四舍五入,科学计数法,保留2位有效数字

⒊统计函数

mean: a <- runif(100); mean(a); 均值

median: median(a); 中值

sd: sd(a); 标准差

var: var(a); 方差

min: min(a); 最小值; cummin; pmin; which.min

max: max(a); 最大值; cummax; pmax; which.max

range: range(a); 最小值与最大值

summary: summary(a); Min, 1st Qu, Median, Mean, 3rd Qu, Max

quantile: quantile(a, probs = seq(0, 1, 0.25)); 分位数

IQR: IQR(a); 四分位距,即75%-25%

rle:连续相同值统计;rle(x); reverse.rle(x)

 

 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐