R-入门+数据类型 -生信技能树

2023-02-14 14:00:39 浏览数 (1)

0-基本信息

R语言版本 4.2.2

Rstudio 用R project管理项目文件,然后新建脚本

只需要管带error的提示

1-数据类型

复习大纲复习大纲

1.1单个数据

字符>数值>逻辑

代码语言:javascript复制
####元素数据####
# 1.1.1-简单数学运算# #比较运算、逻辑运算# #多个逻辑运算#
3 5;3-5;3*5;3/5;3^5;sqrt(9);abs(-3);log2(8);log10(100)
3>5;3<5;3<=5;3>=5;3==5;3!=5
3<5&4>5;3<5|4>5;!(4>5)

# 1.1.2-判断是否是某一数据类型# #数据类型转换#
is.numeric("a");is.logical("4");is.character("4") #返回逻辑值
as.numeric("jimmy");as.logical("F");as.character("4")
#注:数据类型转换时候需要符合数据的要求,jimmy转换成为数值时出现Warning

# 1.1.3-判断数据类型#
class("a") #单个数据能判断,向量数据框等也能判断

1.2向量

1.2.1向量生成

代码语言:javascript复制
#####1.2.1向量生成#####

# 1.2.1.1-使用c()函数组成向量,向量只能有一种数据类型
c(2,5,6,2,9)          # 2 5 6 2 9
c("a","f","md","b")   # "a"  "f"  "md" "b"
c(T,T,T,F,F,F)        # TRUE  TRUE  TRUE FALSE FALSE FALSE

# 1.2.1.2-连续数字使用 :号
1:5                   # 1 2 3 4 5
5:1                   # 5 4 3 2 1

# 1.2.1.3-使用rep()、seq(),rnorm()函数
rep("x",times=3)             # "x"重复3次
seq(from=3,to=21,by=3)       # 从3开始到21,差为3
seq(from=21,to=3,by=-3)      # 从21开始到3,差为-3
rnorm(n=3)                   #3个随机数
rnorm(n=3,mean = 18,sd = 20) #平均18,方差20,3个随机数

# 1.2.1.4-以上函数的组合使用
c(rnorm(1),1:3,seq(4,7,4)) #可以成功运行 结果:0.8761421 1.0000000 2.0000000 3.0000000 4.0000000

1.2.2向量生成

代码语言:javascript复制
#####1.2.2单个向量的操作#####
x = c(1,3,5,1)

# 1.2.2.1-赋值
x = c(1,3,5,1);x  #赋值符号 =
x <- c(1,3,5,1);x  #赋值符号 <- 快捷键:Alt 减号
(x <- c(1,3,5,1)) #( )另一种赋值 输出的写法

# 1.2.2.2-数学计算
x 1                # 2 4 6 2
log(x)             # 0.000000 1.098612 1.609438 0.000000
sqrt(x)            # 1.000000 1.732051 2.236068 1.000000

# 1.2.2.3-条件判断
x>3                # FALSE FALSE  TRUE FALSE
x==3               # FALSE  TRUE FALSE FALSE

# 1.2.2.4-初级统计
max(x)     #最大值  
min(x)     #最小值
mean(x)    #均值
median(x)  #中位数
var(x)     #方差
sd(x)      #标准差
sum(x)     #总和
length(x)          # 长度
unique(x)          # 去重复,第二次出现才算重复
duplicated(x)      # 对应元素是否重复,同样第二次出现才算重复
!duplicated(x)     # duplicated(x)结果取反
table(x)           # 统计各元素重复了几次
sort(x)            # 默认从小到大排序元素

1.2.3两个向量的操作

代码语言:javascript复制
#####1.2.3两个向量的操作#####
# 注意**【【循环补齐】】**
x = c(1,3,5,1)
y = c(3,2,5,6)

# 1.2.3.1-比较运算
x == y;y == x # 结果均为FALSE FALSE  TRUE FALSE
#1.2.3.2-数学运算
x   y;x*y;x-y;...... 
#1.2.3.3-连接 paste()和 paste0()
paste(x,y,sep=",")   # "1,3" "3,2" "5,5" "1,6"
paste0(x,y,sep=",")  # "13," "32," "55," "16," ,没有sep参数,可以设置不会报错
  # paste(x,y,sep="") = paste0(x,y)
#1.2.3.4 交集、并集、差集
intersect(x,y)       # 取交集时,在结果中元素不会重复 -数值
union(x,y)           # 取并集时,在结果中元素不会重复 -数值
setdiff(x,y)         # 找xy里面x独有的 -数值
setdiff(y,x)         # 找xy里面y独有的 若没有返回 numeric(0) -数值型
x %in% y             # x元素在y里面是否存在 -逻辑-取子集
y %in% x             # y元素在x里面是否存在 -逻辑-取子集

1.2.4向量取子集

代码语言:javascript复制
#####1.2.4-向量取子集#####
x <- 8:12

x[x==10]          #按照数值大小取
x[x %in% c(9,13)] #判断8-12数值,在9和13中是否存在,并取出相应元素
x[4]        #按照下标取-取单个
x[2:4]                #取多个
x[c(1,5)]             #取某几个
x[-4]       #数值取反使用-号 #排除某个
x[-(2:4)]             #先取连续,再做排除

1.2.5 修改向量中的元素

代码语言:javascript复制
#####2.5.修改向量中的某个/某些元素#####
###取子集 赋值###
x[4] <- 40
x[c(1,5)] <- c(80,20)
#没有赋值,没有发生#

生信技能树课堂整理笔记

致谢

生信技能树

0 人点赞