博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R学习笔记之三:对象
阅读量:5366 次
发布时间:2019-06-15

本文共 2990 字,大约阅读时间需要 9 分钟。

一、赋值

1、常用赋值:<-、->、assign();

2、全局变量赋值:<<-、->>。

p.s. 《Google's R Style Guide》不建议使用=来赋值

 

二、数据类型:typeof,class,mode

NULL、character、numeric、double、integer、logical、complex、list、factor、raw、expression、name、symbol、function;

NA(not available):is.na();

NaN(not a number):is.nan();

Inf:is.infinite(),is.finite();

NULL:is.null()

1、typeof:

2、class:

3、mode:

4、attributes:

x <- factor(c("12","as","as","12"))

mode(x); class(x) # "numeric" "factor"

x <- ordered(c('A', 'B', 'A', 'C', 'B'), levels = c('C', 'B', 'A'))

mode(x); class(x) # "numeric" "ordered"

x <- matrix(c("12","as","as","12"),2)

mode(x); class(x) # "charactor" "matrix"

p.s.

class可以检测出因子类型(factor)和有序因子类型(ordered)

 “everything is an object”

R中所有数据都是采用向量的形式存储在变量中

 

三、变量类型:length,dim

列举当前内存中的所有对象:ls()、objects() 

1、基本数据对象之向量(Vector):一系列类型相同的有序元素构成,一定是一维的吗(dim())?

x <- vector()  # 创建一个空向量
x <- vector(mode="character",length=3)  # 等价于x <- character(3)和character(length=3) x <- vector(mode="integer",length=3)  # 等价于x <- integer(3)和integer(length=3) x <- vector(mode="logical",length=3)  # 等价于x <- logical(3)和logical(length=3) x <- vector(mode="complex",length=3)  # 等价于x <- complex(3)和complex(length=3) x <- vector(mode="list",length=3)  #
#同上理,对于double,numeric,list,

数值向量(numeric、integer、double、complex、):包含实数、复数、NA、NaN;常用c()、:、seq()、rep()

逻辑向量(logical):包含TRUE、FALSE、NA、NaN,

字符向量(character):letters[1:26]

列表向量(list):

 

2、衍生数据对象之因子(factor)、有序因子(ordered)、矩阵(matrix)、数组(array)、数据框(data frame)、列表(list)、时间序列(time-series)、表(table)

因子(factor,水平(levels)):包含分类数据,其中levels参数定义了所有的可取值,维数为1

x <- factor(c("m","m","h"),levels=c("m","n","h"))  # table()用途甚广

有序因子(ordered,水平(levels)):

x <- ordered(c('A', 'B', 'A', 'C', 'B'), levels = c('C', 'B', 'A'))

矩阵(特殊的数组):matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL),只能定义维数为2的数组

x <- matrix(1:20,4,5,byrow=T)  # byrow默认为FALSE,即默认为按列排列

数组:array(data = NA, dim = length(data), dimnames = NULL),可以定义维数为3维及以上的数组

x <- array(1:36, c(2, 3, 3, 2))  # 一个四维数组x <- array(1:20,c(4,5))  # 等同于x <- matrix(1:20,4,5),所以说matrix是特殊的array,即两维的array

数据框(特殊的列表,类似于矩阵,每列数据的length必须相等):每列可为不同类型的数据,一般导入外部文件时使用

x <- data.frame(my.id=c(101,102),my.name=c("mygod","myself"))

列表:以其他对象为成分的有序集合,其他对象包括......

x <- list(my.id=101,my.name="mygod")  # 单方括号索引得到属性名,双方括号得到属性值

时间序列:

 

表(table): 

class(table(c(1,2,3,2,3,4))) == "table"

 

四、Class转换:

 1、判断Class 

is.character()

is.integer()
is.numeric()
is.vector()
is.factor()
is.matrix()
is.array()
is.data.frame()
is.list()

x <- factor(c("12","as","as","12"))mode(x); class(x)is.numeric(x); is.factor(x)  # FALSE TRUE
x <- ordered(c('A', 'B', 'A', 'C', 'B'), levels = c('C', 'B', 'A')) mode(x); class(x) is.numeric(x); is.ordered(x)  # FALSE TRUE
x <- matrix(c("12","as","as","12"),2)mode(x); class(x)is.character(x); is.matrix(x)  #TRUE TRUE

 

 2、转换Class

as.character()

as.integer()
as.numeric()
as.vector()
as.factor()
as.matrix()
as.array()
as.data.frame()
as.last()

 

五:总结

  列间数据类型 每列数据长度
matrix 必须相同 必须相同
data.frame 可以不同 必须相同
list 可以不同 可以不同

转载于:https://www.cnblogs.com/myquant/p/3583779.html

你可能感兴趣的文章
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Linux常用命令(十二)
查看>>
Linux常用命令(十五)
查看>>
Linux常用命令(十四)
查看>>
Linux常用命令(十七)
查看>>
Linux常用命令(十六)
查看>>
day 3 修改haproxy.cfg 作业
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
Python/jquery
查看>>
【BZOJ】【2132】圈地计划
查看>>
Java有没有goto?
查看>>
求不相邻金币相加和的最大值--动态规划1
查看>>
[转][osg]探索未知种族之osg类生物【目录】
查看>>
四十九. Zabbix报警机制 、 Zabbix进阶操作 、 监控案例
查看>>
元类中__new__ 与 __init__的区别--day27
查看>>