R语言数据类型【转!!】Zhao-Pace  https://www.cnblogs.com/zhao441354231/p/5970544.html

 

R语言用来存储数据的对象包括: 向量, 因子, 数组, 矩阵, 数据框, 时间序列(ts)以及列表, 下面讲意义介绍.

1. 向量(一维数据): 只能存放同一类型的数据

语法: c(data1, data2, ...), 访问的时候下标从1开始(和Matlab相同); 向量里面只能存放相同类型的数据.

> x <- c(1,5,8,9,1,2,5)
> x
[1] 1 5 8 9 1 2 5
> y <- c(1,"zhao") # 这里面有integer和字符串, 整数自动转化成了字符
> y[1]
[1] "1"

访问:

> x[-(1:2)]    # 不显示第1,2个元素
[1] 8 9 1 2 5
> x[2:4] # 访问第2,3,4个元素
[1] 5 8 9

2. 因子(factors):  提供了一个处理分类数据的更简洁的方式

因子在整个计算过程中不再作为数值, 而是作为一个"符号"而已.

factor(x=character(), levels, labels=levels, exclude=NA, ordered=is.ordered(x), nmax=NA)

x: 一个数据向量, 它将被转换成为因子;

levels: 用来指定因子可能出现的水平(默认也就是向量x里面互异的值, sort(unique(x)));它是一个字符向量(即每个元素是单个字符, 组成的一个向量), 下面的变量b就是一个字符向量(可以使用as.character()函数来生成).

labels: 用来指定水平的名字;

> a <- c(6,1,3,0)
> b = as.character(a)
> b
[1] "6" "1" "3" "0"

exclude: 一个值向量, 表示从向量x里面剔除的水平值.

nmax: 水平数目的上界.

> factor(1:3)
[1] 1 2 3
Levels: 1 2 3
> factor(1:3, levels=1:6)
[1] 1 2 3
Levels: 1 2 3 4 5 6
> factor(1:6, exclude = 2)
[1] 1 <NA> 3 4 5 6
Levels: 1 3 4 5 6

一般因子(factor) VS 有序因子(ordered factor)

因子用来存放变量或者有序变量, 这类变量不能用来计算, 而只能用来分类或者计数. 一般因子表示分类变量, 有序因子用来表示有序变量.

创建一个因子:

> colour <- c('G', 'G', 'R', 'Y', 'G', 'Y', 'Y', 'R', 'Y')
> col <- factor(colour) #生成因子
#labels里面的内容代替对应位置处的levels内容
> col1 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('Green', 'Red', 'Yellow'))
> levels(col)
[1] "G" "R" "Y"
> levels(col1)
[1] "Green" "Red" "Yellow"
> col2 <- factor(colour, levels = c('G', 'R', 'Y'), labels = c('1', '2', '3'))
> levels(col2)
[1] "1" "2" "3"
> col_vec <- as.vector(col2)
> class(col_vec)
[1] "character"
> col2
[1] 1 1 2 3 1 3 3 2 3
Levels: 1 2 3
> col_num <- as.numeric(col2)
> col_num
[1] 1 1 2 3 1 3 3 2 3
> col3 <- factor(colour, levels = c('G', 'R')) #levels里面没有'B',导致col3里面的'B'变成了<NA>
> col3
[1] G G R <NA> G <NA> <NA> R <NA>
Levels: G R
> colour
[1] "G" "G" "R" "Y" "G" "Y" "Y" "R" "Y"

创建一个有序因子:

> score <- c('A', 'B', 'A', 'C', 'B')
> score1 <- ordered(score, levels = c('C', 'B', 'A'));
> score1
[1] A B A C B
Levels: C < B < A

3. 矩阵(matrix, 二维数据): 只能存放同一类型

语法: matrix(data, nrow = , ncol = , byrow = F) -- byrow = F表示按列来存放数据(默认), byrow=T表示按行存放数据;

> xx = matrix(1:10, 2, 5)
> xx
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10

4. 数组(大于等于三维的数据): 只能存放同一类型

语法: array(data, dim) -- data: 必须是同一类型的数据; dim: 各维的维度组成的向量;(怎么感觉和matlab里面的reshape函数那么像)

> a = array(1:10,c(2,5))
> a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10

5. 数据框(data frame)

数据框是一种矩阵形式排列的数据(类似于excel表格), 但是和矩阵不同的是, 它的每一列可以是不同的数据类型(还是和excel很像).

语法: data.frame(data1, data2,...) -- data1,...为每列的数据.

> name <- c("Mr A", "Mr B", "Mr C")
> group <- rep(1,3)
> scort <- c(58,15,41)
> df <- data.frame(name, group, scort)
> df
name group scort
1 Mr A 1 58
2 Mr B 1 15
3 Mr C 1 41

数据访问:

> df$name
[1] Mr A Mr B Mr C
Levels: Mr A Mr B Mr C

> df[1]
    name
  1 Mr A
  2 Mr B
  3 Mr C

6. 列表(list): 可以存放不同类型的数据

语法: list(name1=component1, name2=component2, ...)

> xx <- rep(1:2, 3:4)
> yy <- c('Mr A', 'Mr B', 'Mr C', 'Mr D', 'Mr E', 'Mr D', 'Mr F')
> zz <- 'discussion group'
> name.list <- list(group = xx, name = yy, decription = zz)
> name.list
$group
[1] 1 1 1 2 2 2 2 $name
[1] "Mr A" "Mr B" "Mr C" "Mr D" "Mr E" "Mr D" "Mr F" $decription
[1] "discussion group"

R语言数据类型的更多相关文章

  1. R语言 数据类型

    R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...

  2. R语言数据类型与数据结构

    一.数据类型 5种 1.character 字符 2.numeric 数值 3.integer 整数 一般数字的存储会默认为数值类型,如果要强调是整数,需要在变量值后面加上 L. x <- 5L ...

  3. R语言-数据类型与运算符

    一.在线安装包 install.packages(package_name) 二.查看变量 ls() 三.删除变量 rm() 四.变量类型 元数据类型:字符,整形,数字,虚数,BOOL 向量:vec= ...

  4. R语言入门二

    一.R语言应知常用函数 1.getwd() 函数:获取工作目录(同eclipse设置workspace类似),直接在R软件中使用,如下图: 2.setwd(dir=”工作目录”) 函数:设置R软件RS ...

  5. R语言编程艺术# 数据类型向量(vector)

    R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...

  6. R语言编程艺术#01#数据类型向量(vector)

    R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...

  7. 【R语言入门】R语言中的变量与基本数据类型

    说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...

  8. R语言六种数据类型

    1 向量 1.1 定义向量 向量使用c来赋值,向量中不能混合不同类型的数据 x<-c(2,3,7,6,8)  数值型num y<-("one","two&qu ...

  9. R语言作为BI中ETL的工具

    R语言作为BI中ETL的工具,增删改 R语言提供了强大的R_package与各种数据库进行数据交互. 外加其强大数据变换清洗函数,为ETL提供一条方便快捷的道路. RODBC ROracal RMys ...

随机推荐

  1. gitlab搭建和使用

    原文地址:https://blog.csdn.net/zhushuai662/article/details/79581377 大家常听说Git.Github.Gitlab,很多人对着三个词很懵逼,分 ...

  2. python模拟登陆Github示例

    首先进入github登录页:https://github.com/login 输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Sessio ...

  3. 快速搭建一个vue开发环境

    常规的搭建就是从npm到vue到webpack这样一个一个的来,这样一套下来说不上复杂但是也不简单.之前公司的vue后台项目 我还是写的轻车熟路的,因为前端同事已经把架子搭好了,环境配置的丝般顺滑,你 ...

  4. Linux keepalived+lvs实现高可用负载均衡

    LVS的具有强大的负载均衡功能,但是它缺少对负载层节点(DS)的健康状态检测功能,也不能对后端服务(RS)进行健康状态检测:keepalived是专门用来监控高可用集群架构的中各服务的节点状态,如果某 ...

  5. ADC采样工作原理详解

    如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?这个问题,是第一次接触ADC时候,大家都会遇到的问题.会读到什么值单片机会读到什么值?需要看一个特性,就是几位的AD ...

  6. centos7下使用docker安装gitlab

    环境背景: Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程. 测试环境: 系统 软件 依赖 CentOS 7.4 GitLab(latest) docker-ce ...

  7. functools模块中partial的使用

    一.简介 functools.partial(func,* args,**关键字) 返回一个新的部分对象,当被调用时,其行为类似于使用位置参数args 和关键字参数关键字调用的func.如果为调用提供 ...

  8. Atcoder刷题小记

    1. 2019.4.27 agc016d 一道很坑的题. 首先判无解,求出异或值后排个序就可以. 然后直接让\(a_i\rightarrow b_i\)并查集维护,注意离散化和判重,答案加上联通块个数 ...

  9. 同样级别iOS程序员,为啥比我菜的程序员薪资都比我高?

    前言: 作为程序员,都有一种相同的焦虑——即当一次又一次的新技术浪潮袭来,总会不由自主的拼命跟随,总是担心如果不紧跟新技术的潮流,将会被时代所抛弃. 害怕年龄,害怕平庸,其实只是你在现实里的努力无法支 ...

  10. Python学子之如何退出python 命令行

    python命令行是新手学习python过程中必须要学的一个工具,下面我们来看一下怎么退出python命令行. 工具/原料 python2.7 方法/步骤 1.我们这里使用的是python3.6版本, ...