Day02 生信马拉松-vector

2023-08-11 15:45:15 浏览数 (1)

1.向量生成

1.1c()为向量生成的函数 e.pc("a","f","md","b")

1.2 生成连续数字用: e.pc(1:5)

1.3 生成重复序列: "e.prep("x",times = 3) 当times不确定时,用length()确定

1.4 生成有规律序列: e.pseq(from = 3,to = 21,by = 3) from,to,by 均可省略

1.5 生成符合正态分布的规律的随机数: e.prnorm(n = 3)

1.5 生成组合复杂向量可用paste0():

e.pra <- seq(from = 2,to = 15,by = 2)

paste0(rep("student",times = length(a)),a)

paste()paste0()的区别

paste函数:paste函数可以将多个字符串连接在一起,并且可以通过sep参数指定连接的分隔符。如果没有指定sep参数,那么默认的分隔符是一个空格。例如,paste("Hello", "World")的结果是"Hello World"。 2.paste0函数:paste0函数也可以将多个字符串连接在一起,但是它不使用任何分隔符,直接将字符串连接在一起。例如,paste0("Hello", "World")的结果是"HelloWorld"。 总结来说,paste和paste0的主要区别在于,paste在连接字符串时默认使用空格作为分隔符,而paste0则直接将字符串连接在一起,不使用任何分隔符。 解释说明来自chatGPT

2.向量赋值

方法1:x = c(1,3,5,1);x 随意写法,不推荐

方法2:x <- c(1,3,5,1);x 规范写法,Alt 减号

赋值 输出:(x <- c(1,3,5,1))

3.向量运算

3.1 单个向量的简单数学计算

e.p:x 1,log(x),sqrt(x)

3.2 单个向量的初级统计

代码语言:javascript复制
max(x)最大值
min(x)最小值
mean(x)均值
median(x)中位数
var(x) 方差
sd(x) 标准差
sum(x) 总和

3.3 单个向量的条件判断-生成逻辑型向量

e.p:x>3,x==3

3.4 单个向量的操作

3.4.1 判断单个向量中元素个数 length(x)

3.4.2 判断单个向量对应元素是否重复 duplicated(x)

3.4.3 去除单个向量中重复元素 unique(x)

3.4.4 去除单个向量中重复值统计 table(x)

3.4.5 单个向量中元素排序 sort(x) 默认为升序

单个向量中元素排降序 sort(x,decreasing = T)

3.5 两个向量的操作

3.5.1 比较运算 x == y 生成等长逻辑向量

3.5.2 数学计算 x y

3.5.3 连接 paste(x,y,sep=",") 分隔符为","

以上均为等位运算,当两个向量长度不一致时会自动发生循环补齐

3.5.4 交集 intersect(x,y)

3.5.5 并集 union(x,y)

3.5.6 差集

代码语言:javascript复制
setdiff(x,y) x里有,y里面没有
setdiff(y,x) y里有,x里面没有

3.5.7 %in% -非等位运算,不发生循环补齐

代码语言:javascript复制
x %in% y #x的每个元素在y中存在吗—谁在前对谁负责
y %in% x #y的每个元素在x中存在吗

3.6 向量筛选(取子集)

3.6.1 根据逻辑值取子集

代码语言:javascript复制
x[x == 10] #[]将TRUE对应的值挑选出来,FALSE丢弃,[]里是与x等长且一一对应的逻辑值向量
x[x < 12]
x[x %in% c(9,13)]

3.6.2 根据位置值取子集

代码语言:javascript复制
x[4] #[]中为数字表示从向量位置取子集,[]中是由x的下标组成的向量
x[2:4]
x[c(1,5)]
x[-4]
x[-(2:4)]#"-"表示非该位置的意思

3.7 向量中元素的修改

3.7.1 改单个元素 x[4] <- 40;x 将向量中的第4位元素替换为40

3.7.2 改多个元素 x[c(1,5)] <- c(80,20);x 将向量中的第1位和第5位元素分别替换为80与20

所有内容均引用自生信技能树

0 人点赞