列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可 以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表 的一个元素也允许是列表。例如:
1、merge(a,b),纯粹地把两个数据集合在一起,没有沟通a、b数据集的by,这样出现的数据很多,相当于a*b条数据;
因为自己之前学习过一部分B站生信技能树的R语言入门视频,但实际使用时经常会遇到一些问题,这次参加了生信技能树的系统培训班想查漏补缺。这里是整理的第一周学习笔记,主要是针对以前存在的一些问题有了更清晰的认识。
数据结构是指在计算机中存储和组织数据的方式,不同的数据结构有不同的特点和适用场景。R语言中的常用数据结构,包括向量、矩阵、数组、列表和数据框。关于数据结构的使用,我们将分四篇文章分别介绍每种数据结构的操作方法和代码示例。
参考:https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/prog-prof.html
apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。
https://hbctraining.github.io/Intro-to-R/lessons/04_introR-data-wrangling.html
计算机语言的学习并不困难,关键是一定要由浅入深的实际操作练习。也许最开始的比较简单,学习者一带而过没有实际操作,之后的进一步学习很可能会陷入不知所云的困境,实际操作所带来的感觉是无法替代的,其价值也是非常重要的。
R是一种语法非常简单的表达式语言(expression language),大小写敏感。 可以在R 环境下使用的命名字符集依赖于R 所运行的系统和国家(系统的locale 设置),允许数字,字母,“.”,“_”
特殊符号常用,但不好搜索,收藏起来做个备用,欢迎大家继续补充。 (): 通常用于函数的调用,例如ggplot(data); 或者调整优先级,如1:3+1返回2 3 4,而1:(3+1)返回1 2 3 4。 []: 用于索引向量、列表、数据框。 [[]]: 用于索引获得列表、数据框的具体值。 $: 用于数据框索引某一列。三者的区别,具体见下面例子演示。 aVector <- 1:3+1 aVector[1] ## [1] 2 aList <- list(a=aVector, b=1:(3+1)) aLis
apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是初学者玩不转的一类核心函数。很多R语言新手,写了很多的for循环代码,也不愿意多花点时间把apply函数的使用方法了解清楚,最后把R代码写的跟C似得。
数据框来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据
R的源起 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。 R is free R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的
R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。
R语言中,<- 与 = 这两个赋值运算符最主要的区别在于两者的作用域不同。大家可以从下面的例子感受一下。
豆花寄语:学生信,R语言必学的原因是丰富的图表和Biocductor上面的各种生信分析R包。
5.3 增加新一列 e.p df1$p.value <- c(0.01,0.02,0.07,0.05)
step1 对matrix进行转置:使gene名变为列名,将样本名转化为data.frame中的第一列
R语言 控制流:for、while、ifelse和自定义函数function|第5讲
>,<,>=,<=,==,!=。 (大于,小于,大于等于,小于等于,等于,不等于。)
目录: windows命令行中执行R dataframe 常用函数、变量 1、windows命令行中执行R 前提:已经把R的命令目录加入了系统路径中。 在windows中,命令行执行R可以用以下两种方式: (1)RCMD BATCH xxx.r 这种方式也可以写成”r cmd BATCH“、”rcmd BATCH“、”R CMD BATCH“,这几个命令都是一样的,随便你用哪个 这种方式的输出结果不是直接显示在命令行中,而是会在r文件相同路径下,自动创建一个xxx.r.Rout文本文件,输出的内容在这个文
除此之外,还有两种不常见的:参见:https://www.cnblogs.com/mfrank/p/14051513.html
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。它与你通常在SAS、SPSS和Stata中看到的数据集类似。数据框将是你在R中最常处理的数据结构。
生信技能树-数据挖掘课程笔记 数据框 #数据框的新建 df = data.frame(gene = paste0("gene",1:6),change = rep(c("up","down"),each = 3)) #数据框的读取 df df = read.csv("gene.csv") #数据框的属性 dim(df) #查看行数和列数 nrow(df) #查看行数 ncol(df) #查看列数 rownames(df) #查看行名 colnames(df) #查看列名 输出结果: 图片 图片 数据框的操
一、玩转字符串 stringr包 图片 1.str_length() 检测字符串长度 x <- "The birch canoe slid on the smooth planks." x ### 1.检测字符串长度 str_length(x) #计算字符串中有多少字符 length(x) #计算向量中元素的个数 图片 图片 2. str_split 字符串拆分 x <- "The birch canoe slid on the smooth planks." x ### 2.字符串拆分 str_sp
在数据分析中,往往会遇到各种复杂的数据处理操作:分组、排序、过滤、转置、填充、移动、合并、分裂、去重、找重、填充等操作。这时候R语言就是一个很好的选择:R可以高效地、优雅地解决数据处理操作。(本章节为R语言入门第二部分总结篇:数据操作)
能把学习的编程技能用在实际工作中,提升效率、解决痛点、释放生产力,个人觉得是学习编程技能ROI最高的回报,而非都要挤破头成为数据科学家、算法工程师,毕竟这些职业的门槛一直都在,但让工作更轻松却是任何一个职业都有的真实诉求。
方式:RStudio中,菜单栏File→NewProject→NewDirectory→NewProject→DirectoryName
个人理解,向量是有方向的,由大于等于2个元素构成的数据类型。也就是说,向量的所有元素必须属于同种模式(mode),或数据类型(见1.2),比如数值型,字符型等。其类型可以用typeof()查看。 标量只含有一个元素,在R中没有0维度或标量类型。单独的数字或字符串本质是一元向量。
约等于表格:1.数据框不是一个具体文件,只是R语言内部的一个数据;2.数据框每一列只能有一种数据类型
R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等。这几个函数功能有些类似,下面介绍下这几个函数的用法。
数据类结构 数据类型 一维 vector 向量 数值、字符、逻辑都可;只有长度;只允许一种数据 二维 matrix 矩阵 向量二维化 只允许一种数据类型 二维 data.frame 数据框-二维,每列只允许一种数据类型 1.数据框来源 1)用代码新建 2)由已有数据转换或处理得到 3)读取表格文件 4)R语言内置数据 2.新建和读取数据框 df1 <- data.frame(gene = paste0("gene",1:4),change = rep(c("up","down"),each = 2),
[1] "The birch canoe slid on the smooth planks."
1、字段抽取 字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:substr(x,start,stop) tel <- '18922254812'; #运营商 band <- substr(tel, 1, 3) #地区 area <- substr(tel, 4, 7) #号码段 num <- substr(tel, 8, 11) tels <- read.csv('1.csv'); #运营商 bands <- substr(tels[,1], 1, 3) #地区 areas <-
初级统计函数 max() ,min() , mean() , median() ,var()方差 , sd()标准差 , sum()总和, length(x) # 长度(x中元素的个数), unique(x) #去重复(第一次出现不为重复,第二次出现为重复),duplicated(x)#检查重复值 , table(x) 重复值(因子)统计 ,sort(x) #排序 , dim() 查看行列数, nrow()查看行数,ncol() 查看列数
数据可视化是数据分析过程中探索性分析的一部分内容,可以直观展示数据集数据所具有的的特征和关联关系等。R语言不仅提供了基本的可视化系统graphics包,简单的图+修饰,例如:plot、 hist(条形图)、 boxplot(箱图)、 points 、 lines、 text、title 、axis(坐标轴)等;还提供了更加高级的图形系统lattice和ggplot2.
Vector一维 c(1,2,3,4,4) c("A","B","C") c(T,F,F,T,F)
以map开头的一系列函数接受向量为输入,对向量的每个元素进行函数运算,再返回一个新的向量,这个新的向量的长度和原来的一样长,向量元素的名称也是一样的;输出向量的类型由map函数的后缀来表明:
Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。
数据框是一种表格式的数据结构,属于一种二维表,分为行和列。数据框旨在模拟数据集,与其他统计软件例如 SAS 或者 SPSS 中的数据集的概念一致。数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。不同的行业对于数据集的行和列叫法不同。在一个数据框中,每一行的元素个数相同,每一列元素个数也相同,每一列的数据类型一致,都为一个向量,每一行内容还是一个数据框。数据框是 R 中使用最广泛的一种数据格式。
整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply - Combine。plyr包是Hadley Wickham为解决split – apply – combine问题而写的一个包。使用plyr包可以针对不同的数据类型,在一个函数内同时完成split – apply – combine三个步骤。plyr包的主函数是**ply形式的,函数名的第一个字符代表输入数据的类型,第二个字符代表输出数据的类型,其中第一个字符可以是(d、l、a),第二个字母可以是(d、l、a、_ ),不同的字母表示不同的数据格式,d表示数据框格式,l表示列表,a表示数组,_则表示没有输出。
将c(1, 2, 3)赋值给变量x时,实际上是将数值向量绑定到x上的过程,变量x称为引用。
tibble 是一种简单数据框,它对传统数据框的功能进行了一些修改,其所提供的简单数据框更易于在 tidyverse 中使用。
数据操作中排序和去重是比较常见的数据操作,本专题对排序和去重做专门介绍,并且给出一种不常用却比较有启发意义的示例:多列无序去重
tibble是一种简单数据框,它对data.frame的功能进行了一些修改,更易于使用。本文将介绍tidyverse的核心R包之一——tibble包
在R中,一个object可以是任何可以赋值给变量的东西(数据结构、函数、甚至是graph),一个object有两个重要的东西叫mode和class,前者决定这个object的存储方式(numeric,character,logical),后者决定函数如何处理这个object。虽然有object的概念,但是R本身仍然是一种自顶向下式的编程方式,大部分功能都是通过各式各样的函数来实现的。
领取专属 10元无门槛券
手把手带您无忧上云