day5-yaoshan

学习笔记:学习R语言教程 (pku.edu.cn)

常量与变量

  1. 常量

常量是指直接写在程序中的值,包括数据、字符串等。

  • 数值型常量
  • 字符型常量 用两个双撇号或两个单撇号包围。
  • 逻辑值常量 只有TRUE和FALSE。
  • 缺失值 缺失值用NA表示
  • 复数类常量
  1. 变量

程序语言中的变量用来保存输出的值或者计算得到的值。在R中,变量可以保存所有的数据类型, 比如标量、向量、矩阵、数据框、函数等。

  • 变量名是可以区分大小写的。
  • 变量名的第一个字符不能为数字。
  • 变量名必须以字母、数字、下划线和句点组成。

R数据类型

R语言基本的数据类型有数值, 逻辑型(TRUE, FALSE),文本(字符串)。 支持缺失值,有专门的复数类型。

R语言数据结构包括:

  • 向量
  • 矩阵
  • 数据框
  • 多维数组
  • 列表
  • 对象等。

数据中元素、行、列还可以用名字访问。 最基本的是向量类型。 向量类型数据的访问方式也是其他数据类型访问方式的基础。

标量

单个数值称为标量, R没有单独的标量类型, 标量实际是长度为1的向量。

标量的运算即+、-、*、/、^,并且遵从通常的优先级计算顺序用括号改变运算的先后顺序。整除5 %/% 3和求余5 %% 3

向量

向量是将若干个基础类型相同的值存储在一起, 各个元素可以按序号访问。

数值型向量

如果将若干个数值存储在一起可以用序号访问, 就叫做一个数值型向量。

自己画的

标量: 一个元素组成的变量。
向量: 多个元素组成的变量。
元素: 指的是数字或字符串。

  1. 用c()函数把多个元素或向量组合成一个向量。
  2. 1:10这样的写法表示从1到10的整数组成的向量。
  3. 用print()函数显示向量或在命令行中显示向量
  4. seq(1,1o,by = 0.5)表示1~10之间每隔0.5取一个数。
  5. rep(1:3,times=2) 1-3,重复两次。
  6. length(x)可以求x的长度。 长度为零的向量表示为numeric(0)。

注:1:5和seq(5)的结果是整型(integer)的, c(1,3,5)和seq(1, 5, by=2)的结果是浮点型(double)的。

向量的运算

  1. 向量与标量的运算

向量与标量的运算为每个元素与标量的运算。一个向量乘以一个标量, 就是线性代数中的数乘运算。

向量与标量的运算.png
  1. 等长的向量与向量运算

等长向量的运算为对应元素两两运算。两个等长向量的加、减运算就是线性代数中两个向量的加、减运算。

等长的向量与向量运算.png
  1. 不等长向量的运算

两个不等长向量的四则运算, 如果其长度为倍数关系,规则是每次从头重复按照短的一个向量重复。如果两个向量的长度不是倍数关系,会给出警告信息。

image.png

向量化函数

R中的函数一般都是向量化的: 在R中, 如果普通的一元函数以向量为自变量,一般会对每个元素计算。

  • sort()
    sort函数对向量按照从小到大排序,默认返回向量从小到大的值sort(test,decreasing = T) 降序排列
  • rev()
    rev()函数用于返回数据对象的反向版本,数据对象可以定义为向量、按列和按行的 DataFrame 等。

向量作为样本计算统计量

  • sum(求和),
  • mean(求平均值)
  • var(求样本方差)
  • sd(求样本标准差)
  • min(求最小值)
  • max(求最大值)
  • range(求最小值和最大值)
    等函数称为统计函数, 把输入向量看作样本,计算样本统计量。

字符型向量

字符型向量是元素为字符串的向量。注意空字符串并不能自动认为是缺失值, 字符型的缺失值仍用NA表示。

paste()

paste()用来连接两个字符型向量, 元素一一对应连接, 默认用空格连接。

paste()用来连接两个字符型向量, 元素一一对应连接, 默认用空格连接。


image.png

paste()在连接两个字符型向量时采用R的一般向量间运算规则, 而且可以自动把数值型向量转换为字符型向量。 可以作一对多连接, 如paste("x", 1:3)结果相当于c("x 1", "x 2", "x 3")。

用sep=指定分隔符, 如paste("x", 1:3, sep="")结果相当于c("x1", "x2", "x3")。

使用collapse=参数可以把字符型向量的各个元素连接成一个单一的字符串, 如paste(c("a", "b", "c"), collapse="")结果相当于"abc"。

toupper()和tolower()

toupper()函数把字符型向量内容转为大写, tolower()函数转为小写。

nchar(x, type='bytes')

用nchar(x, type='bytes')计算字符型向量x中每个字符串的以字节为单位的长度,这一点对中英文是有差别的, 中文通常一个汉字占两个字节,英文字母、数字、标点占一个字节。

用nchar(x, type='chars')计算字符型向量x中每个字符串的以字符个数为单位的长度,这时一个汉字算一个单位。

substr(x, start, stop)

取子串

  1. 标量取子串


    image.png
  2. 向量取子串


    image.png

如果x是一个字符型向量,substr将对每个元素取子串。

  1. substring(x,star)

可以从字符串x中取出从第start个开始直到到末尾的子串。


image.png

as.numeric()和as.character()

as.numeric()把内容是数字的字符型值转换为数值型,as.numeric()是向量化的, 可以转换一个向量的每个元素为数值型。

比如可以把提取出来的字串(字符型)转变为数值型

as.character()函数把数值型转换为字符型

gsub()

用gsub()可以替换字符串中的子串, 这样的功能经常用在数据清理中。

image.png

image.png

fixed
logical. If TRUE, pattern is a string to be matched as is. Overrides all conflicting arguments.

下标取元素/子集

  1. 正整数下标

取第几位的元素/子集
x[2]取出第二个元素
x[2] <- 99修改第二个元素为99
x[c(1,3)]取出第1、3号元素
x[c(1,3)] <- c(11, 13)修改第1、3号元素。

  1. 负整数下标

负下标表示扣除相应的元素后还剩下的元素的子集。

3 空下标

x[]表示取x的全部元素作为子集。
即选中所有元素

  1. 零作为下标

x[0]是一种少见的做法, 结果返回类型相同、长度为零的向量, 如numeric(0)。 相当于空集。
当0与正整数下标一起使用时会被忽略。 当0与负整数下标一起使用时也会被忽略。

  1. 逻辑下标

下标可以是与向量等长的逻辑表达式, 一般是关于本向量或者与本向量等长的其它向量的比较结果

x[x==10] x等于10的值
x[x<0]x<0的值
x[x %in% c(1,2,5)]存在于向量c(1,2,5)中的元素

  1. 下标超界

如果使用超出向量长度的下标, 读取时返回缺失值,并不出错。 给超出的下标元素赋值, 则向量自动变长, 中间没有赋值的元素为缺失值。

注:下标可重复。负整数下标不能与正整数下标同时用来从某一向量中取子集,没有意义。

读取文件

image.png
  • colnames(data)查看列名
  • rownames(data)查看行名
    修改列名第一个格

colnames(x)[1] <- "bioplanet"

导出文件

image.png

分隔符改为逗号,字符串不加双引号(即quote = F)。

直接使用数据框的变量名作图

image.png

当文件保存失败,报错object not found

可能原因是,没有定义变量x,即没有对该变量进行赋值 。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天主要学习两个数据类型:向量和数据框。下面也只是展现了最基础的操作,以后将在学习的过程中慢慢补充。 向量 向量的...
    soda0301阅读 1,625评论 0 0
  • Colorful egg : Ctrl+F to be continued... Day 1 | matplotl...
    NeyoShinado阅读 4,470评论 0 0
  • 20171205(从有道迁移) 高级数据管理 示例问题:给所有学生确定一个单一的成绩衡量指标,需要将这些科目的成绩...
    KrisKC阅读 3,335评论 0 0
  • 来源:NumPy Tutorial - TutorialsPoint 译者:飞龙 协议:CC BY-NC-SA 4...
    布客飞龙阅读 33,358评论 6 98
  • 本章内容数字和统计函数字符处理函数循环和条件执行自编函数数据整合与重塑 5.1 一个数据处理难题 题目详见R语言实...
    亚航阅读 3,669评论 0 1

友情链接更多精彩内容