1、向量

向量是R语言中最基本的数据类型,在R语言中没有单独的变量。

(1)  创建向量

R语言中可以用 = 或者 <- 来赋值。

向量名 <- 向量

或  向量名 = 向量

向量的创建方式有c()函数,seq()函数等。

注:R中的向量默认为列向量,如果要得到行向量需要对其进行转置。

(2)  引用

待引用向量为:test = c(6,7,8,9,10)。

a、用下标引用

向量名[下标值]

或  向量名[下标值1:下标值2] (下标值1至下标值2的所有数值)

注:R语言下标值从1开始。

另外,可以在下标值前加 – 表示排除这个下标。

向量名[-下标值]

b、用逻辑引用

向量名[逻辑关系]

其中逻辑关系表示的是一个布尔值构成的向量,用逻辑引用时只会选择答案为TRUE的值。

(3)  合并向量

c()可以合并向量。

(4)  循环补齐

当两个向量进行操作时,若其中一个向量比另一个向量长度短,那么该向量会复制自己直到与另一个向量一样长。(注:长向量长度是短向量长度的整数倍)

其中test1自动变成了(1,2,3,1,2,3)再与test2相加。(test1,test2变量值并未发生改变)

2、矩阵

矩阵从本质上讲,是多维的向量。

(1)  创建矩阵

最简单的直接创建矩阵的方法是用matrix()函数。

其中,data参数输入的为矩阵的元素,不能为空;nrow参数输入的是矩阵的行数,默认为1;ncol参数输入的是矩阵的列数,默认为1;byrow参数控制矩阵元素的排列方式,TRUE表示按行排列,FALSE表示按列排列,默认为FALSE;dimnames参数输入矩阵的行名和列名,可以不输入,系统默认为NULL。

还可用其他格式的数据转变为矩阵,需要用到函数as.matrix()。

(2)  引用矩阵

与向量相似,可用下标来引用矩阵。

矩阵名[行下标,列下标]

(3)  线性代数

a、对应元素相乘

b、矩阵相乘

c、矩阵的转置t()

d、矩阵的逆solve()

3、数组

数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:

其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。

4、数据框

数据框是R语言里中的一种数据结构,类似于矩阵,不过与矩阵不同的是其内部可以有多种数据类型,每一列是一个变量,每行是一个观测记录。

(1)  创建数据框

使用data.fram()函数就可以初始化一个数据框。

矩阵可以转化为数据框,如果原来有列名,那么列名将被改作为数据框的变量名,如果没有列名,那系统会自动为矩阵的各列起一个变量名,如:V1,V2,V3...

列表数据可以转成数据框。

另外也可以使用read.table() read.csv()读取一个文本文件,返回的也是一个Data Frame对象。读取数据库也是返回Data Frame对象。

(2)  引用数据框

待引用数据框为

a、用下标引用

b、用列表名引用

(3)  常用操作

a、添加变量(列)

b、修改变量(列)

c、删除观测值或变量(行或列)

数据框名[-下标值,]

数据框名[,-下标值]

(4)  常用函数

a、names()函数

可获取列名。

b、rownames()、colnames()函数

可修改行名及列名。

c、attach()函数

可以把数据框中的变量“连接”到内存中,这样便于数据框数据的调用。

5、列表

列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表。

(1)  创建列表

使用list()函数就可以初始化一个列表。

(2)  引用列表

待引用列表即为上图所创建的列表。

列表名[[下标]

注:列表不同于向量,我们每次只能引用一个元素,如mylist[[1:2]]的用法是不允许的。“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表)。

在定义列表时如果指定了元素的名字(如mylist中的name,age,score),则引用列表元素还可以用它的名字作为下标,格式为“列表名[["元素名"]]”。

列表名$元素名

(3)  常用操作

a、添加元素

如果被赋值的元素原来不存在,则列表延伸以包含该新元素。例如,mylist现在共有三个元素,我们定义一个新的命名元素,则列表长度变为4,再定义第六号元素则列表长度变为6:

第五号元素因为没有定义所有其值是“NULL”,这是空对象的记号。如果rec是一个向量 ,则其空元素为“NA”。

b、修改元素

c、删除元素

d、合并列表

可以用list()函数进行列表合并。

list(列表1,列表2,···,列表n)

R语言入门 :基本数据结构的更多相关文章

  1. 用几分钟了解R语言入门知识

    第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)

  2. R语言入门1:安装R和RStudio

    R语言入门1:安装R和RStudio 曹务强 中科院遗传学博士研究生 9 人赞同了该文章 1. Windows安装R 在Windows系统上,安装R语言比较简单,直接从R的官方网站下载,按照正常的软件 ...

  3. 【Introduction】R语言入门关键小结

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  4. r语言入门资料

    最近有好多r语言的爱好者问我r语言的事情,在百度上简单的收一收,感觉都在扯淡,真正适合初学者入门的资料几乎没有,比如最开始用什么编辑器比较好,在哪下载,最开始学习的例子有什么?  在日本网站上反倒是找 ...

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

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

  6. R语言入门二

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

  7. [原创]零基础R语言教程---第二课---R语言入门

    这节教程简单描述了R语言中常用的数据类型, 向量,字符串,矩阵,列表,数据框,以及附带了一个小例子 对于这节课所附带的例子需要做下列补充: 1.这个例子面向于对整列的数据进行预测 2.如果你需要求单行 ...

  8. R语言入门(二)基础语法

    1.help可以提供帮助,如help(nchar), help("[["),或者用?nchar也能获取帮助.example(nchar)可以获取到某个主题的使用方法. 2.ncha ...

  9. R语言入门(一)简介安装

    数据挖掘常用的语言有R语言,python,SQL等,其中R语言最受欢迎.(注:SQL Server包含微软研究院开发的两种数据挖掘算法:Microsoft决策树和Microsoft聚集,此外还支持第三 ...

随机推荐

  1. Mbps Mb M Kb如何换算

    在传输单位的写法上,B 和 b 分别代表 Bytes 和 bits,两者的定义是不同的,具体换算公式如下:1 Byte = 8 bits 1 Kb = 1024 bits 1 KB = 1024 by ...

  2. 最近用到的 sql 统计操作

    统计操作 1.分组统计group by select id,name,count(*) as '总数'  from test1 group by id,name     --group by   分组 ...

  3. 使用MyEclipse建立working set

    1.用eclipse或者MyEclipse开发久了后,会有很多的项目,就算关闭了还会有很多,这是需要建立一个working set,相当在工作区中建立项目文件夹分类放自己做过的一些项目. 如下图:   ...

  4. 如何配置Linux的服务设置为自动启动或崩溃重新启动后

    介绍 在本教程中,自动启动 Linux 服务,我们将退后一步,更详细地解释 init 进程. 你应该很好地了解它们如何控制守护进程的启动行为. 在第一部分本系列教程我们分享使用 MySQL 的如何崩溃 ...

  5. 插入算法---java实现

    插入排序java代码实现 package algorithms.插入排序; import java.io.BufferedReader; import java.io.InputStreamReade ...

  6. TiDB数据库 使用syncer工具同步实时数据

    mysql> select campaign_id ,count(id) from creative_output group by campaign_id; rows min 44.23 se ...

  7. css常见效果

    1.ul li横排 /* ul li以横排显示 */ /* 所有class为menu的div中的ul样式 */ div.menu ul { list-style:none; /* 去掉ul前面的符号 ...

  8. [LOJ 6030]「雅礼集训 2017 Day1」矩阵

    [LOJ 6030] 「雅礼集训 2017 Day1」矩阵 题意 给定一个 \(n\times n\) 的 01 矩阵, 每次操作可以将一行转置后赋值给某一列, 问最少几次操作能让矩阵全为 1. 无解 ...

  9. Django商城项目笔记No.5用户部分-注册接口-短信验证码

    Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤 ...

  10. python3中启动 uiautomator2viewer时报错解决办法

    事先说明:我电脑里同时了安装了 python2和python3,启动对应版本时分别带上版本号,如何设置共存请参考:python2与python3共存 打开命令窗口,启动weditor : python ...