美文网首页
R day1 -基本概念操作-2

R day1 -基本概念操作-2

作者: labrador1986 | 来源:发表于2018-12-09 00:47 被阅读0次

万地高楼平地起,掌握基本的代码规律和逻辑思维非常重要

每个基本的代码和函数不运行是200次以上,是谈不上掌握的

基本开始运行代码

rm(list=ls())
options(stringsAsFactors = F)

tips

Tab键匹配补全
head(b)取b的前6行,同样有tail()取末6行

基本数据类型

R 有四种基本数据类型,即数值型(numeric)、复数型(complex)、逻辑型(logical)、字符型(character),因子(factor)。
numeric:就是数字【需要注意的是有的虽然看起来是数字,但是被定义成了character或者factor,需要用as.numeric转换】
character:用单引号或者双引号包括起来的字符序列,一般我们称之为字符串。
logical:逻辑型变量,即布尔值,表示“是”与“否”,“真”或“假”。
逻辑型用 TRUE 表示真,FALSE 表示假。也可缩写为 T或者 F,
但需要注意的是,T 和 F不是 R 的保留字,其含义可以被程序改变,因此最好是用 TRUE 和 FALSE,更加规范和安全。
R中的比较运算和逻辑运算都可以产生逻辑型数据。比较运算包括 >,<,>=,<=,==,!=(大于,小于,大于等于,小于等于,等于,不等于)。
逻辑运算包括 &,|,!(与、或、非)。

> 2>3
[1] FALSE
> a=seq(1,20)
> 8>a
 [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[17] FALSE FALSE FALSE FALSE

factor:应该是最难理解的一个变量类型
在R语言中,因子(factor)可以表示的是一个符号、一个编号或者一个等级,即,一个点。例如,人的个数可以是1,2,3,4......那么因子就包括,1,2,3,4.....
还有统计量的水平的时候用到的高、中、低,也是因子,因为他是一个点。
与之区别的向量,是一个连续性的值,例如,数值中有1,1.1,1.2......可以作为数值来计算,而因子则不可以。

sex<-c("M","F","M","M","F")
factor(sex)
sex.factor<-as.factor(sex)
#使用levels来取得因子中的水平
levels(sex.factor)
# [1] "F" "M"

不太好理解,新手刚开始不太用的上,我现在也不太理解factor,应该是比character多了半个维度的感觉

基本数据结构

无论是数值型(numeric)、逻辑型(logical)、字符型(character),因子(factor)变量都需要用容易来存储,也就是数据结构
R的对象由几种基本数据类型构成:
向量(vector) :一维空间
矩阵(matrix):二维空间,只可以存储数值变量,但是较少用到,
数据框(dataframe):二维空间,可以存储numeric,logical,character,factor型变量,在实际分析工作中用到的最多
数组(array):三维空间,但是极少用到,可以忽略
列表(list):三维空间,可以由多个vactor/matrix/dataframe组成

基本计算

R中可以直接进行基本计算
每一个英文单词都是一个函数
基本所有的计算符号都可以在R中进行直接计算

6+6
6-6
6*6
6/6
6^2
log(6)
mean()
max()
min(x)

创建向量

c( ) 是我们常用来创建向量的函数,c就是create,也可以理解为combind

c("TP53","ERBB2","BRCA1")
c(2,3,4)
c(2:9)
seq(1,3)#默认为整数1
seq(1,3,by=0.5)
a=c(3,4,5,6,7,8),等价于a=3:8或者a=c(3:8)或者a=seq(3,8)
【R中没有唯一的解决代码方案,条条大路通罗马,找出规律,构建个人的思维习惯才是王道】

rep就是replicate重复的意思

rep(1,3)# 【1重复3次】
rep(1:2,3) #【1和2,重复3次】
rep("TP53",3)# 【TP53, 重复3次】
rep(c("TP53","ERBB2","BRCA1"),each=3)#【每个向量重复3次】
rep(c("TP53","ERBB2","BRCA1"),3)#【 重复3次】

seq就是sequence序列

seq(1,3)#默认为整数1 返回值为1,2,3
seq(1,3,by=0.5) by是设定间隔值,返回值为1, 1.5, 2, 2.5, 3
sort(a)#排序
rev(a)#反向排序
table(a)###每个变量的counts
unique(a)####显示变量唯一的数目

sort(a)#排序
sort(a,decreasing = TRUE) #降序排序
order()得到排列的小标用,返回的是每个变量在一维向量中的排序位置编号

每个函数都有很多哑变量可以微调整,参考help文档说明,或者TAB键联想,每个调整参数之间以,分割

判断向量类型

在预算中如果报错,那就需要check元素类型是否不支持,as.xxxx函数可以帮助把数据变成指定类型或状况。
class()查看数据类型
str()查看数据结构
dim()查看数据维度

is.data.frame()返回TRUE or FALSE逻辑向量
as.character()可以帮助把数据变成字符型数据(加双引号“”的变量)

构建matrix

a<-matrix(1:20,nrow = 4,ncol =5 )
a<-matrix(1:20, 4,5 )
a<-matrix(1:20, 4)
#三者等同

构建data.frame

a<-data.frame(a=seq(1,5),b=seq(6,10))

data.frame的行和列数目必须一致,并且行名不能重复,列名可以重复

提取数据

对于向量,由于是一维结构,可以直接a[3],取向量中第3个数值
对于矩阵和数据框,由于是二维结构,需要指定二位结构
a[2,3]取数据框中的第2行、第三列的数值

data.frame默认是列为单位
可以对列进行直接操作
例如a是数据框变量
mean(a[,1])、mean(a$1) 可以直接求a的第一列的均值
但是mean(a[1,])却不可以直接求a的某一行的均值
需要先转换后在计算
mean(as.numeric(a[1,]))
如果添加行,则将改变所有的列。如果重新赋值,可以将a改成数据框类型。如果没有重新赋值,则不改变a的类型。依次类推,还有as.xxx等系列函数

对list进行操作

list是三维结构,所以需要进行三维定位
例如a是list变量
a[1]则得到列表中的第一个列表,进行一次降维
a[[1]] 得到第一元素,进行了二次降维
有时候两种方法得到的结果看起来是一样的,可是使用class查看数据类型后发现,其实[[]]之后已经对数据进行了二次降级,变成了元素。

数据框取索引

通常我们想提取数据框中的指定行或者指定列
一般有两种简单提取思维
1)提取目标变量所在下标值(可以理解为坐标,例如第几行)
举例
a<-data.frame(sample=rep(c("tumor","sample"),4),age=seq(1:8))


要求1,提取sample为tumor的数据

我可以找到sample列=tumor的行号

b<-a$sample=="tumor"

注意==是逻辑判断符号,所以返回的是逻辑性变量


image.png

然后直接导入编辑变量

tumorsample<-a[b,]
image.png

也可以一步代码

tumorsample<-a[a$sample=='tumor',]
a<-seq(1,100)
a>2 #返回的是逻辑变量
a[a>2]#返回的是向量变量,自动过滤掉FALSE变量

体会下不同

文件读取和保存

read.table('文件名', header = T,sep = '\t' )
read.csv('文件名', header = T )
write.table(a,file = "aa")
write.csv (a,file = "aa")

重命名

重命名行名
rownames(b)<-
colname(b)<-

尚不完善,持续更新ing

感谢jimmy和他的生信菜鸟团家族

相关文章

  • R day1 -基本概念操作-2

    万地高楼平地起,掌握基本的代码规律和逻辑思维非常重要每个基本的代码和函数不运行是200次以上,是谈不上掌握的 基本...

  • 数据库的CURD操作

    基本概念 crud操作,表示是增删改查. c[create] / r[read] / u[update] /d[d...

  • 《学习小组Day 4笔记--JnG》

    今天是进行R语言操作的日子 1.首先是下载R语言啦以及其操作平台Rstudio 2.简单的入手R语言操作命令R语言...

  • linux文件权限

    linux下文件夹也可作为文件,故以下省略文件夹 基本概念 可读,可写 、可执行 文件的三种操作权限 r-可读(r...

  • 学习小组Day5笔记--LA

    R语言的操作 1.R语言的操作前提知识 1.R语言赋值,a <- 2.Console是输入命令的控制台 3.R语言...

  • 清华学霸尹成Python爬虫视频

    ├─day1 │ 1爬虫的基本概念 │ 2Fiddler简介 │ 3网页信息简介 │ 4读取网页三种方法 ...

  • 11-23-1、2绘图

    一、绘图基本概念 相关R包:作图(ggplot2),拼图(patchwork),导出(eoffice) 基础包绘图...

  • 软件设计师考试 | 第三章 数据结构 | 排序

    (一)排序的基本概念 假设含n个记录的文件内容为{R1,R2,...,Rn},相应的关键字为{k1,k2,...,...

  • 第1章 R语言介绍

    《R语言实战》笔记系列 本章学习大纲 1.R的安装 2.R的基本概念(常用的函数介绍) 3.R的常见错误 第一部分...

  • 191201 R语言学习笔记2

    day1已经获得了一个数据框,先学习对这个数据框进行操作 切片操作,取第1,3行, 然后取第4,6列 R自带很多数...

网友评论

      本文标题:R day1 -基本概念操作-2

      本文链接:https://www.haomeiwen.com/subject/aelqhqtx.html