R语言数据类型
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语言数据类型的更多相关文章
- R语言 数据类型
R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...
- R语言数据类型与数据结构
一.数据类型 5种 1.character 字符 2.numeric 数值 3.integer 整数 一般数字的存储会默认为数值类型,如果要强调是整数,需要在变量值后面加上 L. x <- 5L ...
- R语言-数据类型与运算符
一.在线安装包 install.packages(package_name) 二.查看变量 ls() 三.删除变量 rm() 四.变量类型 元数据类型:字符,整形,数字,虚数,BOOL 向量:vec= ...
- R语言入门二
一.R语言应知常用函数 1.getwd() 函数:获取工作目录(同eclipse设置workspace类似),直接在R软件中使用,如下图: 2.setwd(dir=”工作目录”) 函数:设置R软件RS ...
- R语言编程艺术# 数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
- R语言编程艺术#01#数据类型向量(vector)
R语言最基本的数据类型-向量(vector) 1.插入向量元素,同一向量中的所有的元素必须是相同的模式(数据类型),如整型.数值型(浮点数).字符型(字符串).逻辑型.复数型等.查看变量的类型可以用t ...
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
- R语言六种数据类型
1 向量 1.1 定义向量 向量使用c来赋值,向量中不能混合不同类型的数据 x<-c(2,3,7,6,8) 数值型num y<-("one","two&qu ...
- R语言作为BI中ETL的工具
R语言作为BI中ETL的工具,增删改 R语言提供了强大的R_package与各种数据库进行数据交互. 外加其强大数据变换清洗函数,为ETL提供一条方便快捷的道路. RODBC ROracal RMys ...
随机推荐
- Git 本地保存账号密码的删除或修改
转自:https://blog.csdn.net/lwqldsyzx/article/details/61228299 Git 本地拉取代码时需要输入用户名和密码时,会自动将用户名密码信息保存起来.需 ...
- Spring cloud zuul跨域(一)
项目背景:我们有web和大屏,以及移动端,需要访问微服务接口. 然而大屏时自己打开的网页,在网页中通过js调用我的webapi.出现了跨域情况. 原因:出现这个问题,是由于跨域请求有2次请求. 第一次 ...
- Python 目录指引
1.0 Python 基础整合 1.1 变量 1.2 数据类型 1.3 基础语法 1.4 文件操作 1.5 函数 1.6 生成器 1.7 迭代器 1.8 装饰器 1.9 字符集 2.0 Python ...
- HTML&CSS_基础03
一.Meta标签: 1.可以设置网页的关键字 2.用来指定网页描述 3.可以用来网页重定向 具体参数参见:http://www.w3school.com.cn/html5/tag_meta.asp 二 ...
- 如何用Electron Js创建第一个应用Hello World
什么是Electron Node.js和Chromium的结合品.允许只使用HTML,CSS和JavaScript来开发跨平台桌面应用. 编写第一个Electron程序(Hello World) 在开 ...
- <Android基础> (七)内容提供器
第七章 内容提供器 7.1 内容提供器(Content Provider) 主要应用于在不同的应用程序之间实现数据共享功能.允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性. 7.2 ...
- placeholder中文字添加换行方法
需求: 文本域内的提示文字两行显示 解决方案: 表示回车 表示换行 <textarea id="textarea" maxlength="22" plac ...
- CF271D 【Good Substrings】
定义哈希函数 \(H(c)=\sum_{i = 1} ^ m c_i*b^{m-i}\) \(H(C,K+1)=H(C,K)*b+C_{K+1}\)(K个坏字母) 用long long #includ ...
- 课下作业MyCP的分析
目录 MyCP 题目 截图 代码 相关知识 出现的问题 代码托管 参考资料 MyCP 题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: ja ...
- mysql 严格模式 Strict Mode说明(text 字段不能加默认或者 不能加null值得修改方法)
mysql 严格模式 Strict Mode说明 1.开启与关闭Strict Mode方法找到mysql安装目录下的my.cnf(windows系统则是my.ini)文件 在sql_mode中加入ST ...