广告位联系
返回顶部
分享到

R语言数据类型深入介绍

R语言 来源:转载 作者:秩名 发布时间:2021-03-15 21:59:04 人浏览
摘要

R语言用来存储数据的对象包括: 向量, 因子, 数组, 矩阵, 数据框, 时间序列(ts)以及列表 意义介绍 1. 向量(一维数据): 只能存放同一类型的数据 语法: c(data1, data2, ...),访问的时候下标从1开始(和Matlab相同);向量里面只能存放相同类型的数据. x - c(1,5,8

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"
 

参考:


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.cnblogs.com/zhao441354231/p/5970544.html
相关文章
  • R语言包的升级与降级问题的介绍
    R语言包的升级与降级 这篇博客只是记录一下在使用偏最小二乘判别分析时遇到的一些问题:暑期实习期间曾自行使用R语言caret包进行机器学
  • R语言绘制尺子的实现教程

    R语言绘制尺子的实现教程
    本文使用基本的绘图命令plot、rect、segments、text绘制一把长10厘米的直尺 1、定义基本单位 xcm - 0.07 ycm - 0.07 2、首先使用plot绘制一个空白画布
  • R语言对数据库进行操作的介绍
    数据是关系数据库系统以规范化格式存储。 因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询。 但R语言可以轻松地连接到许多
  • R语言中ifelse、which、%in%的用法
    ifelse、which、%in%是R语言里极其重要的函数,以后会经常在别的程序中看到。 ifelse ifelse是if条件判断语句的简写,它的用法如下: ifelse(tes
  • R语言-使用ifelse进行数据分组

    R语言-使用ifelse进行数据分组
    数据分组,根据数据分析对象的特征,按照一定的数值指标,把数据分析对象划分为不同的区间部分来研究,以揭示内在的联系和规律性;
  • R语言-如何将list转换为向量?

    R语言-如何将list转换为向量?
    从excel中直接读取的数据为list,如下转换为向量 as.vector(unlist(x)) 补充:R语言基本运算,向量,矩阵,list,数组 1. 基本运算 1.1 加、减、乘
  • R语言中的因子类型的介绍
    一、Factor函数 #函数factor可以把一个向量编码为一个因子,其一般形式为:#factor(x,levels=sort(unique(x),na.last=TRUE),labels,exculde=NA,order=FALSE)#其中
  • R语言UTF-8各种问题的解决方案
    R语言在碰到读UTF-8文件,或者处理UTF-8数据时总是会遇到各种各样的问题,本姑娘也是在碰了n多次壁,被气得吐血好多次之后,终于对这类
  • Rstudio中安装package出现的问题及解决
    Rstudio中安装package问题 一、 install.packages(REmap)无法安装package:错误:无法与服务器建立连接 解决方式:切换下载的镜像 方法一:在Rstudio菜
  • R语言操作X轴日期实例介绍
    R语言操作X轴日期: 需要用到程序包library(lubridate);程序包是在R的安装包C:\R-3.4.4\bin\x64\RGui.exe里根据命令安装的 将日期改为xxxx/xx/01; fir
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计