2.2对单个向量进行操作(1)赋值( <- alt+—,在R里操作)赋值,=随意的写法,是OK的=可以代替赋值号 <- ,反过来不行赋值+输出一起实现图片可用名,不建议使用已经占用的格式,如c,limma duplicated(x)此为常用使用形式table(X)#重复值统计,看重复几次,没有重复,返回为1,可以统计出现的次数sort(x)排序,默认从小到大,sort(x,decreasing=T),排序则可改成从大到小R语言的默认思想英文 +函数名帮助文档paste0(rep("student",times=length(a)),seq(2,15,by=2))R语言函数思想:能用函数代替,就不要手动去数,除非代码只用一次2.3对两个向量的操作 [4]--11,x的第四个元素x[2:4],x[c(1,5)]x[-4]去掉第四个x[-(2:4)]去掉2-4位,反选,是x的下标叹号是给逻辑值用的,-是给向量用的x[1,5]---代码错误,因为不能单独运行 g[seq(2,100,2)],按位置,取出下标为偶数的基因# 6.向量g中有多少个元素在向量s中存在(要求用函数计算出具体个数)?
(3)读取表格文件 (4)R语言内置数据> class(iris)[1] "data.frame"> class(volcano)[1] "matrix" "array"2.新建和读取数据框df1 < - c(0.01,0.02,0.07,0.05) df1#改行名和列名rownames(df1) <- c("r1","r2","r3","r4")#只修改某一行/列的名colnames(df1)[2] 矩阵m <- matrix(1:9, nrow = 3)colnames(m) <- c("a","b","c") #加列名mm[2,]m[,1]m[2,3]m[2:3,1:2]mt(m)###矩阵转置 = matrix(2:9, nrow = 2))x> x$m1 [,1] [,2] [,3][1,] 1 4 7[2,] 2 5 8[3,] 3 6 9$m2 [,1] [,2] [,3] [,4][1,] 2 4 6 8[2,] 3 5 7 9###取子集方法x[[1]]x$m1补充
#按坐标范围取多格,返回一个数据框 输出结果: 图片 图片 图片 #数据框的修改 df$score = c(2,3,4,5,3,2) #创建新的列即,给不存在的列赋值 df df[3,3] = 8 ,"3"),each = 3)) df2 = data.frame(GENES = paste0("gene",1:3),count = c(2,3,2)) df df1 df2 #数据框的连接 merge = matrix(1:8,ncol = 3) m1 m2 #矩阵不足行数或列数会自动补齐 colnames(m1) <- c("a","b","c") #添加列名 m1[2,] #矩阵取一行 m1[,1 ] #矩阵取一列 m1[2,3] #矩阵取一格 m1[2:3,1:2] #矩阵取多格 t(m1) as.data.frame(m1) #矩阵转为数据框 输出结果: 图片 列表 #列表的构建 l = list (v = c(1,2,3),df = data.frame(num = c(1,2,3),score = c(2,4,6)),m = matrix(1:9,ncol = 3)) l #列表取子集 l[[
浏览器很卡顿,把我卡出去了,我没有拿到数据集 在R中,对象(object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数,甚至图形。 它们在R中被特殊地存储和处理。 其他多数术语你应该比较熟悉了,它们基本都遵循统计和计算中术语的定义。 这些具体的举例可以看我上篇文章R语言实战.1最后的部分。 糖尿病类型Diabetes(Type1、Type2)是名义型变量的一例。即使在数据中Type1编码为1而Type2编码为2,这也并不意味着二者是有序的。有序型变量表示一种顺序关系,而非数量关系。 类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。 ? ? ? $是用来选取一个变量时用的符号 ? 语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为1=Type1和2=Type2(具体赋值根据字母顺序而定)。
duplicated(x)paste(x,y)paste(x,y,sep = "")paste0(x,y)#向量的长度不一样时,发生循环补齐c <- c(1,2,3,45,43)d <- c(1,32) c==d#循环补齐可以简化代码paste0(rep("x",times=5),seq(from=2,to=32,by=3))paste0("x",seq(2,32,3))#交集、并集intersect( ###向量筛选等#取子集中的反选“-”x <- 1:21x[c(-4:-20)]#修改向量x[4] <- 333x#省略参数的前提——写的参数中间没有未写出来的参数#比如下面忽略了each参数,就把“2” 给了未写出来的length out参数了rep(c("x","y"),times=4,each=2)rep(c("x","y"),4,2)小洁老师
#Vector 向量的三种创建方法,两个参数:类型,长度 > x <- vector("character",length=10) > x1 <- 1:4 > x2 <- c(1,2,3,4) > x3 <- c(TRUE,10,"a") #如果给向量赋值时元素类型不一致,R就会强制转换,将他们变为同一类型 > x4 <- c("a","b","c","d") > #强制转换的函数如下: > as.numeric
R语言的综合应用-2 题外话:长脚本管理方式 1.分成多个脚本,每个脚本最后保存Rdata,下一个脚本开头清空再加载 #第一个脚本 ... save(pd,exp,gpl,file)="ssss.Rdata " #第二个脚本 rm(list=ls()) load(file="ssss.Rdata") ... 2.用if语句:if(F){...} 其中X是数据框或者矩阵名; MARGIN为1表示行,为2表示列 FUN是函数 (对X的每一行/列进行FUN这个函数) apply(test, 2, mean) apply(test, 1, sum) (二)列表的隐式循环——lapply sapply 列表没有行,列的概念 六、两个数据框的连接 inner_join(test1,test2,by="name") right_join(test1,test2 ,by="name") full_join(test1,test2,by="name") semi_join(test1,test2,by="name") anti_join(test1,test2,by
#1 2 3 …… 10x<- seq(1,10,by = 0.5) #数列,1 1.5 2 2.5 …… 9.5 10x<- rep(1:3,times=2) #重复 ,1 2 3 1 2 32、向量元素提取根据位置提取x[2] #提取第2个元素 x[-4] #排除法x[2:4] #提取第2到 4个元素x[-(2:4)] #除了第2-4个元素x[c(1,5)] #提取第1个和第5个元素根据元素值提取x[x==10] #提取等于10的元素; 2、查看行名列名、行数列数rownames(a) #行名,row;默认值的行名就是行号,1 2 3 4...colnames(a) #列名,columndim(a 变量的保存格式是RData;脚本的保存格式是R。
一.认识R和Rstudioplot() 函数 它主要用于绘制散点图和折线图 runif( ) 从连续的均匀分布中抽取样本,产生均匀的连续分布.图片二.设置字体大小三.R语言基本操作用Rproject管理工作目录显示文件列表加减乘除赋值 x<- 1+2 意思是把1+2的运算结果赋值给x图片图片
最近在看任坤大神的新作——《R语言编程指南》,其中对于编程语言中非常流行的面向对象编程范式(OOP)在R语言中的实现进行了非常详尽的讲解,强烈推荐各位有志于进阶R语言编程的小伙伴儿进行阅读。 R语言内目前可以实现OOP范式的一共有四套标准:S3、S4、RC、R6,其中关于S3、S4两种范式在早期的各种扩展包中使用比较多,是基于泛型函数而实现的,之前在学习Python的面向对象编程系列时曾经做过粗浅的练习 : 左手用R右手Python系列——面向对象编程基础 S3与S4之间的差异: 1.在定义S3类的时候,没有显式的定义过程,而定义S4类的时候需要调用函数setClass; 2.在初始化S3对象的时候,只是建立了一个 ,在封装上非常不方便,而RC以及在RC基础上进一步发展的R6标准已经逐步开始接近主流编程语言中面向对象的实现模式。 Gecko) Chrome/61.0.3163.79 Safari/537.36" ) ) 调用类中的方法执行爬虫程序: mydatainfo2
数据类型数值型:用于直接计算加减乘除字符串型:可以进行连接,转换,提取等逻辑型:真或假日期型等R对象R语言中的变量可以赋值给变量的任何事物,包括常量、数据结构、函数甚至图形对象都拥有某种模式,描述此对象是如何储存的 =1,to=100,length.out=10) # 输出个数为10 ##rep函数:重复数列 rep(a,b) #重复b次a标量与其他编程语言类似R语言是向量化编程a=2向量索引正负整数索引length 1.删除整个向量rm(v)2.删除某个元素(正负整数索引)y<-c(1:5)y1 2 3 4 5 y[-c(1:3)]y4 5# 修改数据-直接定位赋值x[1]<-5向量计算1.直接用数学符号计算2.向量之间计算 dim函数dim(x)=c(4,5)# 绘图heatmap.()# 定义矩阵行、列的名字rownames=c("R1","R2","R3")cnamesdimnames(m)=list(rownames ,cnames)数组#创建数组dim(x)=c(2,2,5)矩阵的索引# 矩阵下标访问m[1,2]矩阵的计算#直接计算(矩阵之间行和列数要一致)m+1m+m#内置函数colsums() #每一列的和
reshape2,主要用于宽数据和长数据之间的转换。 主要就是melt和*cast函数的应用。 具体可参考如下图片 ? 参考的r代码如下 names(airquality) = tolower(names(airquality)) head(airquality) # melt md = melt(airquality (climate_variable == "solar.r"))
---title: "2-R语言数据结构"output: html_documentdate: "2023-02-02"---矩阵:只允许一种数据类型的二维结构数据框:每一列只允许一种数据类型列表:可以装各种数据类型 #重点:数据框#1.数据框来源# (1)用代码新建# (2)由已有数据转换或处理得到# (3)读取表格文件# (4)R语言内置数据#2.新建和读取数据框df1 <- data.frame(gene (df1) <- c("r1","r2","r3","r4") #行列取子集结果为向量,所以修改时也得是向量#只修改某一行/列的名colnames(df1)[2] <- "CHANGE"#6.两个数据框的连接 ] 2 5 8## [3,] 3 6 9#矩阵取子集,不支持$m[2,]## a b c ## 2 5 8m[,1]## [1] 1 2 3m[2,3]## c ## 8m[2:3,1:2]## a b## [1,] 2 5## [2,] 3 6m## a b c## [1,] 1 4 7## [2,] 2 5 8## [3,] 3 6 9t(m) #转置## [,1] [,2]
#列表list > l1 <- list("a",2,10L,3+4i,TRUE) #每个元素没有名字 > l1 [[1]] [1] "a" [[2]] [1] 2 [[3]] [1] 10 [[4]] [1] 3+4i [[5]] [1] TRUE > l2 <- list(a=1,b=2,c=3) #列表中每个元素名字分别为abc > l2 $`a` [1] 1 $b [1] 2 $c [1] 3 > l3 <- list(c(1,2,3),c(4,5,6,7)) #生成一个列表,列表中每一个元素大于1 > l3 [[1]] [1] 1 2 3 [[2]] [1] 4 5 6 7 > x <- matrix(1:6,nrow = 2,ncol = 3) #自动创建列表 > dimnames(x) <- list(c("a","b"),c("c","d","e")) #使用dimnames定义标题 > x c d e a 1 3 5 b 2 4 6
to = 15, by = 2) [1] 2 4 6 8 10 12 14 > # 2.生成向量,内容为:"student2" "student4" "student6" " 是5 ,会发生循环补齐 > paste0(rep("student", times=5), seq(from=2,to=15,by=2)) [1] "student2" "student4 to = 15, by = 2), paste0(rep("student", times=7), seq(from=2,to=14,by=2))) [1] "2" "4" 循环补齐 发生条件:等位计算方法+向量的长度不相等 > a = c(3,2,5) > b= c(2,1,5,6,2,2,3,4,5) > a == b[1] FALSE FALSE TRUE FALSE #结果是一张图1,纵坐标是k1,k1的下标默认为横坐标 > boxplot(k1~k2) #结果是一张图2,k1 是纵坐标,k2是横坐标 一些杂七杂八的小记录: 向量里是元素,长度就是元素的个数 paste0
那么今天我们就为大家介绍一下目前在R语言中流行的绘图包ggplot2。 1. ggplot2的安装:install.packages("ggplot2")。 2. ggplot2的绘图原理: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离,并按图层作图。 3. ggplot2的函数介绍: ggplot2里的所有函数可以分为以下几类: 用于运算(我们在此不讲,如fortify_,mean_等) 初始化、展示绘图等命令(ggplot,plot,print等) aes)横纵坐标、点的大小、颜色,填充色等 几何对象函数 描述 geom_abline 线图,由斜率和截距指定 geom_area 面积图(即连续的条形图) geom_bar 条形图 geom_bin2d 瓦片(即一个个的小长方形或多边形) geom_vline 竖直线 统计变换函数 描述 stat_abline 添加线条,用斜率和截距表示 stat_bin 分割数据,然后绘制直方图 stat_bin2d
接上文:R语言日常笔记(1)filter函数 > library(dplyr) > library(tidyverse) > starwars %>% + head() # A tibble: 6 C-3PO 167 75 NA gold yellow 112 NA Tatooine Droid <chr~ 3 R2-D2 C-3PO 167 75 NA gold yellow 112 NA Tatooine Droid <chr~ 3 R2-D2 C-3PO 167 75 NA gold yellow 112 NA Tatooine Droid <chr~ 3 R2-D2 C-3PO NA gold 167 75 3 R2-D2 NA
[,3] [,4] [1,] 1 5 9 13 [2,] 2 6 10 14 [3,] 3 7 11 15 [4,] 4 8 3*4分别对应行*列*组(相对应的维度即为1*2*3 #apply(x,c(1,2),mean)中1,2对应的维度为行*列,不需要考虑组,所以对每组相同位置的所有元素相加后求平均,因此输出的结果为2行3 列的矩阵 #同理,apply(x,c(1,3),mean)中1,3对应的维度为行*组,所以分别对每组中的行求平均,因此输出的结果为2行4列的矩阵(x中有4个组,每组中有2行) #同理,(2,3)就代表列 > x , , 1 [,1] [,2] [,3] [1,] -0.6055074 0.1428984 -0.9020732 [2,] -0.6947868 #以第1及第2维为基础,沿第3方向压成平面 [,1] [,2] [,3] [1,] 0.01790675 0.01413214 -0.2336942 [2
---title: "R语言基础-画图(ggplot2)"output: html_documentdate: "2023-09-12"---ggplot2绘图模版# ggplot(data = <DATA >,# position = <POSITION>)+# <COORDINATE_FUNCTION>+# <FACET_FUNCTION>1.数据演示数据以R的内置数据 iris为例进行说明2. 2.5 统计变换-绘图模版"stat= <STAT>"#此处以R内置数据diamonds为例,先简单查看下数据,做一些简单的统计View(diamonds)table(diamonds$cut)## # 列表的下一级元素必须是长度为2的向量;3.这个长度为2的向量必须是横坐标p + stat_compare_means(comparisons = my_comparisions)+ stat_compare_means
对于当前的因子有一个整体的了解 > table(x) x female male 3 1 > #去掉因子的属性,看因子的内容 > unclass(x) [1] 1 1 1 2 attr(,"levels") [1] "female" "male" > unclass(y) [1] 2 2 2 1 attr(,"levels") [1] "male" "female"