R语言之数据类型和数据结构

一、数据类型

1.数字
分为整数和小数,整数用integer表示,小数用numeric表示,如果一组数据同时包含整数与小数,那么R会将整数转换为小数,即添加一个小数位
2.文本
分为普通文本和因子。普通文本用character表示,因子用factor表示。
普通文本就是通常所说的文字符号,带有引号标记,因子则没有引号标记,

可以使用as.xx函数对上述类型进行转换
======================================

二、数据结构

数据可能以各种形式和结构存在,并且每一种都有特殊用途

1.、常数
R中内置了5种确定常数数值的对象,分别是:
LETTERS:包含大写字母A-Z
letters:包含小写字母a-z
month.abb:包含所有月份的英文缩写形式
month.name:包含所有月份的全拼形式
pi:π的取值

2、向量(矢量)
一维结构的数据,可以是数字或文本。向量可以用vector函数启动,用length函数定义长度,用mode函数定义类型,用names函数显示和定义名称
如:vector(mode="logical",length=4),定义一个长度为4的逻辑向量。

> x<-1:10
> names(x)
> names(x)<-letters[1:10]

定义一个向量x,显示向量名字,默认情况下为null,将向量x中的元素名称定义为前十个小写字母。

3、矩阵
特征和数据框比较像,不同点是:只能有二维、不能使用$选择变量、数据内容只能包含一种类型、首列为个案名称。
可以使用matirx函数定义矩阵,也可以通过它把一个向量转换成矩阵并通过dimnames对行列命名。
可以使用det函数计算其行列式,使用solve函数计算其逆矩阵
如:
> x<-matrix(data = 1:4,nrow=2,ncol=2,byrow = TRUE,dimnames=list(c("r1","r2"),c("c1","c2")))
> det(x)
> solve(x)
定义一个由向量1:4转换的矩阵,并定义行列名,求行列式和逆矩阵

4、列表
如果要想将不同类型的数据结构和数据类型都放在同一个对象中,那么需要使用列表,列表的官方定义为:由有序对象集合组成的对象。

列表可以使用list函数实现。特征是像一系列独立命名的向量,每一个名称都用$开头,可以使用$选择变量

可以使用stack()函数将列表转换为数据框,它的反向操作是unstack()函数

> a<-letters
> b<-1:10
> c<-matrix(1:6,nrow = 2)
> z<-list(a=a,b=b,c=c)
> class(z)
> class(z$a);class(z$b);class(z$c)

定义三个对象,将其放在列表z中,并通过class查看对象类型。

5、数据框
数据框也可以存储不同类型的对象,特征有多维结构,区别是首列是序号,不显示个案名称,每个变量名为单独一列,可以使用$选择变量
可以通过data.frame函数实现,用varible.names输出变量名,sapply函数输出变量类型,
如:
> x<-c(2,3,4);y<-letters[1:3]
> df1<-data.frame(x,y)
> variable.names(df1)
> sapply(df1,class)
定义两个变量x,y将其放在数据框df1中,并显示其变量名和变量类型。

6、表

这里指的频数表,在实际应用中,我们经常需要使用频数格式的数据,通常使用的是expand函数和xtabs函数
如:
Class.Level <- c("1st","2nd","3rd", "Crew")
Sex.Level <- c("Male", "Female")
Age.Level <- c("Child", "Adult")
Survived.Level <- c("No", "Yes")
Data.Level <- list(Class = Class.Level, Sex = Sex.Level,
Age = Age.Level, Survived = Survived.Level)
T.Table = expand.grid(Class = Class.Level, Sex =
Sex.Level, Age = Age.Level, Survived = Survived.Level)
T.freq <- c(0,0,35,0,0,0,17,0,118,154,387,670,4,13,89,3,
5,11, 13,0,1,13,14,0,57,14,75,192,140,80, 76,20)
T.Table <- cbind(T.Table, count=T.freq)
xtabs(count~ Class + Sex + Age + Survived , data =
T.Table)

我们先定义四个拥有不同水平的变量,然后将其放在list中,接下来用expand.grid创建一个数据框,和data.frame不同,expand.grid创建的数据框内容是所有变量各水平的全面组合。接下来定义频数变量,再使用cbind函数加在数据框中,最好使用xtabs函数列出各个变量各水平组合的二维频数表。

=============================================
三、检查数据结构

可以使用str()函数检查某个对象的数据结构

=============================================
四、查看和删除所加载的对象
1、查看加载的对象
ls()函数可以列出所有已加载的对象,也可以使用匹配搜索ls(pattern="b")这其中可以使用通配符
2.移除加载的对象
可以使用rm()函数或removw()函数移除
rm(list=ls())可以使用ls生成一个list清单,并配合rm的list选项进行批量移除

时间: 2024-08-05 19:37:35

R语言之数据类型和数据结构的相关文章

约翰霍普金斯大学数据科学系列课程——R语言:数据类型

1.原子对象 R语言有5类最基本的原子对象: 1)  字符型character 字符型对象用" "包括. 2)  数值型numeric(real numbers) 数字对象在R中默认为数值型(numeric),如果你需要指定一个数据为整数型,需要在改数字后加上L.如:数字123默认为numeric型,如果需要其为integer型,可表示为123L. 3)  整数型integer 4)  复数型complex 复数的实部用实数表示,虚部用实数+i表示.如:3+2i,2+1i等. 5) 

从零开始学习R语言(五)——数据结构之“列表(List)”

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141740 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12567803.html 5. 列表(list) R语言中的列表和Python等语言中的list有所不同.R语言中的列表是对象的集合, 列表中的对象又称为它的分量(components). 分量可以包含向量.矩阵.数组,数据框,甚至是另外一个列表,且在列表中要求每一个分量都要有一个名称. my_list <-

从零开始学习R语言(四)——数据结构之“数组(Array)”

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141207 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12567789.html 4. [三维+]:数组(Array) R语言中数组可以看做是矩阵的扩展,它将矩阵扩展到2维以上.如果给定的数组是1维的则相当于向量,2维的相当于矩阵.R语言中的数组元素的类型也是单一的,可以是数值型,逻辑型,字符型或复数型等. R语言中数组的使用 4.1 数组的创建 语法:array

R语言基础知识学习(一):R中的数据类型和数据结构

R中数据类型有:数值型,字符型,逻辑型和复数型等. R 中存储数据的结构有:向量,数组,因子,数据框,矩阵和列表等. 向量是用于存储数值型.字符型或逻辑型数据的一维数组. 用函数c()可以来创建一个向量,如: > a <- c(1,2,3,4)> b <- c('china','america','japan')> c <- c(TRUE,FALSE,TRUE,FALSE)> ls()[1] "a" "b" "c&

从零开始学习R语言(六)——数据结构之“数据框(Data Frames)”

本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/60141998 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12568348.html 6. 数据框(Data Frames) Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的.Data Frame每一列有列名,每一行也可以指定行名.如果不指定行名,那么就是从1开始自

R语言实战-数据类型-1(标量、向量、矩阵、数组)

0.基本数据类型 数值型num,包含整形.浮点型.双精度型等所有数值类型 字符型factor,字符和字符串,因子 布尔值logi,布尔型,T,TRUE,F,FALSE 1.标量 单个的数值.字符值或者布尔值 2.向量 函数c() 1 a<-c(1,2,3,4) 2 b<-c('aa','bb','cc') 3 c<-c(TRUE,FALSE,TRUE) 访问向量的元素 []中括号中指定元素的下标 可以是单个数值,也可以是数值向量,还可以用x:y的形式指定一个范围 1 > d<

R语言实战-数据类型-2(数据框dataframe)

5.数据框dataframe  data.frame 创建 data.frame() 1 > a<-c(1,2,3,4,5) 2 > b<-c('a','b','c','d','e') 3 > c<-c(T,F,F,F,T) 4 > x<-data.frame(a,b,c) 5 > x 6 a b c 7 1 1 a TRUE 8 2 2 b FALSE 9 3 3 c FALSE 10 4 4 d FALSE 11 5 5 e TRUE PS:子元素

R语言--变量与数据类型

R语言的数据分类 R语言的数据类型较多,但都是动态声明,即变量不会声明为某种数据类型.变量分配为R对象 向量 列表 矩阵 数组 数据帧 因子 下面是几种最简单对象的类型 # Atomic vector of type character. print("abc");#character # Atomic vector of type double. print(12.5)#numeric # Atomic vector of type integer. print(63L)#integ

R语言 数据集

第二章 创建数据集 1.R语言的数据类型 数值型.字符型.逻辑型.复数型(虚数)和原生型(字节) 2.数据结构 a.向量:存储数值型.字符型和逻辑型数据的一维数组 > a=c(1,2,3,4,5)#创建 组合功能的函数c() > a [1] 1 2 3 4 5 > a[c(1,4)]#访问 方括号+向量中指定的元素 [1] 1 4 b.矩阵:二维数组 mymatrix=matrix(1:20,nrow=5,ncol=4,byrow=TRUE,dimnames=list(rnames,cn