前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言学习笔记-Day 2

R语言学习笔记-Day 2

原创
作者头像
用户11190095
发布2024-07-02 22:47:27
30
发布2024-07-02 22:47:27
举报
文章被收录于专栏:生信学习笔记生信学习笔记

r

1 TRUE

as.character("a")

1 "a"

as.logical(TRUE)

1 TRUE

as.character(4)

1 "4"

c(2,3,5,6,9)

1 2 3 5 6 9

c("a","f","k")

1 "a" "f" "k"

1:5

1 1 2 3 4 5

rep("x",time=3)

1 "x" "x" "x"

seq(from=3,to=21,by=3)

1 3 6 9 12 15 18 21

rnorm(n=3)

1 -0.33499193 0.01844176 0.87598682

paste0(rep("x",times=3),1:3)

1 "x1" "x2" "x3"

paste0(rep("x",times=3),1:3,rep("a",time=3))

1 "x1a" "x2a" "x3a"

x<-c(1,3,5,1)

x

1 1 3 5 1

x <- c(2,3,6,5);x

1 2 3 6 5

#以下为练习题

#生成1-15之间所有偶数

seq(from=2,to=15,by=2)

1 2 4 6 8 10 12 14

#生成向量,内容为:“student2/4/6/8/10/12/14”

paste0(rep("student",times=7),seq(from=2,to=14,by=2))

1 "student2" "student4" "student6" "student8" "student10" "student12" "student14"

b <- seq(from=2,to=14,by=2);paste0(rep("student",times=length(b)),b)

1 "student2" "student4" "student6" "student8" "student10" "student12" "student14"

#将两种不同类型的数据用c()组合在一起,看输出结果。

y <- c(1,2,3,"a","c","e");y

1 "1" "2" "3" "a" "c" "e"

x <- c("a","b","c",TRUE,FALSE);x

1 "a" "b" "c" "TRUE" "FALSE"

z <- c(1,2,3,4,TRUE,FALSE);z

1 1 2 3 4 1 0

A <- c(1,2,3,4,TRUE,FALSE);A

1 1 2 3 4 1 0

a <- c(1,0,1,TRUE,FALSE);a

1 1 0 1 1 0

#字符型+数值型/逻辑型=字符型;数值型+逻辑型=数值型(TRUE=1,FALSE=0,NULL=空,NA=NA);转换原则:尽可能保留内容。

k1 <- rnorm(12);k1

1 1.1634622 -0.1284445 0.4145822 -0.1347036 0.1559240 -1.8345503 -0.4332640 0.2029306 -0.1146037 0.9133085 -2.0834287

12 2.6023179

plot(k1)

k2 <- rep(c("a","b","c","d"),each=3);k2

1 "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"

boxplot(k1~k2)

*补充信息

并非所有NA都是逻辑型。

*数据类型的判断和转换

is族函数,判断,返回值为TRUE或FALSE

is.numeric(4) - TRUE

is.character(a) - FALSE

is.logical()

格式和内容都很重要

as族函数实现数据类型之间的转换

as.numeric/logical/character():将数据转换为数字/逻辑/字符型

*多个数据如何组织?

数据结构:向量<数据框<矩阵<列表

数据框约等于“表格”,列有要求,每行只能有一种数据类型;不是文件

数据框单独拿出的一列为向量,视为一个整体。

一个向量只能由一种数据类型。

乱码解决方法:HELP-Reopen with encoding-UTF-8

向量的生成:

(1) 用c()逐一放到一起。

(2) 连续的数字用“:”

(3) 有重复的用rep();有规律的序列用seq();随机数用rnorm()。(小数点后默认显示八位)

(4) 通过组产生更为复杂的向量。paste0(rep("x",times=3),1:3)

对单个向量进行的操作

(1) 赋值:x<- c(1,3,5,1)#规范的赋值符号

“=”可以替代“>-”#随意的写法

(x <- c(1,3,5,1))#赋值和输出一同实现

标准:x <- c(1,3,5,1);x

x为变量名,可用:大小写字母(但不建议用c);字母+数字可以,数字+字母报错;“_”“.”可用,“ ”“-”为特殊字符,不被允许;不可用中文做变量名称

两句或多句代码写在同一行使用“;”

(2) 简单数值计算:x+1/log(x)/sqrt(x)

(3) 比较运算,生成逻辑值向量:x>3/x==3

(4) 初级统计:

max(x) #最大值

min(x) #最小值

mean(x) #平均值

median(x) #中位数

var(x) #方差

sd(x) #标准差

sum(x) #求和

length(x) #向量长度(元素个数)

unique(x) #去掉重复元素(仅保留一个)

duplicated(x) #判断是否发生重复(仅在第一次发生重复时输出TRUE)

table(x) #重复值统计(即存在哪些取值,各出现几次)

sort(x) #对向量内元素进行排序(默认升序;?sort查看帮助文档,默认值写在USAGE中)

sort(x,decreasing = T) #降序排列

#paste0()函数输出值跟随最大数字

对两个向量进行的操作(一一对应(长度一致时))

(1) 比较运算,生成等长的逻辑向量。e.g.x=c(1,3,5,1);y=c(3,2,5,6);x==y 1 F F T F

(2) 数学计算 x+y 1 4 5 10 7

(3) 连接 paste(x,y,sep=",") 1 1,3 3,2 5,5 1,6

#paste0(x,y) = paste(x,y,sep="")

当长度不一致,且发生等位运算时,较短向量元素发生循环补齐。

(4) 交集、并集、差集

intersect(x,y) 1 3 5

union(x,y) 1 1 3 5 2 6

setdiff(x,y) 1 1 #存在于x中而不在y中

setdiff(y,x) 1 2 6

重点:%in% 没有快捷键(非对应比较)

x %in% y #x的每个元素在y中存在吗

y %in% x #y中的每个元素在x中存在吗

向量筛选(取子集)

x <- 8:12;xx==10 10

xx<12 8 9 10 11

xx%in%c(9:12) 9 10 11 12

#以上均根据逻辑值筛选

#按位置筛选:

x4 11

x2:4 9 10 11

xc(1,5) 8 12 #x1,5 会报错,“[]”中需为向量

x-(2:4) 8 12 #“-”为反选,即去除所选部分

按照逻辑值:与x等长的且一一对应的以逻辑值组成的向量;

按照位置:由x下标所组成的向量

修改向量中某个元素

x4 <- 40 #改一个元素

xc(1,5) <- c(80,20) #改多个元素

#R语言里所有修改都需要赋值,没有赋值就没有发生

删掉某一个变量:rm(x)

向量的作图

k1 <- rnorm(12);k1

plot(k1) #k1作为纵坐标(点图)

k2 <- rep(c("a","b","c","d"),each=3);k2

1 "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"

boxplot(k1~k2) #k1作纵坐标,k2作横坐标,自动生成中位数(箱线图)

向量(Vector)——一维

数据框(“表格”)——二维:matrix:矩阵,二维,只允许一种数据类型;data.frame:数据框,二维,每列只允许一种数据类型

列表(list)

判断数据结构:(1)根据生成的函数判断;(2)利用class或is函数判断。

#Rdata的保存

save(g,s,file="gands.Rdata") #将变量g,s储存到gands.Rdata中

load("gands.Rdata") #调用变量g,s

#numeric:double, integer

typeof(x) #返回原函数

x = c(1L,2L,4L,5L) #也可生成整数列

引用自生信技能树

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 TRUE
  • 1 "a"
  • 1 TRUE
  • 1 "4"
  • 1 2 3 5 6 9
  • 1 "a" "f" "k"
  • 1 1 2 3 4 5
  • 1 "x" "x" "x"
  • 1 3 6 9 12 15 18 21
  • 1 -0.33499193 0.01844176 0.87598682
  • 1 "x1" "x2" "x3"
  • 1 "x1a" "x2a" "x3a"
  • 1 1 3 5 1
  • 1 2 3 6 5
  • 1 2 4 6 8 10 12 14
  • 1 "student2" "student4" "student6" "student8" "student10" "student12" "student14"
  • 1 "student2" "student4" "student6" "student8" "student10" "student12" "student14"
  • 1 "1" "2" "3" "a" "c" "e"
  • 1 "a" "b" "c" "TRUE" "FALSE"
  • 1 1 2 3 4 1 0
  • 1 1 2 3 4 1 0
  • 1 1 0 1 1 0
  • 1 1.1634622 -0.1284445 0.4145822 -0.1347036 0.1559240 -1.8345503 -0.4332640 0.2029306 -0.1146037 0.9133085 -2.0834287
  • 12 2.6023179
  • 1 "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d"
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档