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,即没有对该变量进行赋值 。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

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