Ruizheng 的学习笔记
感谢 生信技能树 小洁老师
数据类型转换的优先数据
对单个向量进行的操作
- 赋值给一个变量名 用 <- =
x <- c(1,5,4,8) ### 赋值符号 Alt + -
赋值和输出一起执行
(x <- c(1,3,5))
x <- c(1,3,5); x
- 简单数学计算
> x + 1 # [1] 2 4 6
- 根据某条件进行判断,生成逻辑值向量
x > 3 # [1] FALSE FALSE TRUE
- 初级统计
var(x) # 方差
sd(x) # 标准差
sum(x) # 总和
length(x) # 长度
unique(x) # 去重复,返回**小于等于** x 长度的逻辑值向量
duplicated(x) # 判断元素是否在前面出现过,返回与 x **长度相等**的逻辑值向量
table(x) # 重复值统计
sort(x)
对两个向量的操作
x = c(1,3,5,1)
y = c(3,2,5,6)
- 逻辑比较,生成等长的逻辑向量
x == y
# [1] FALSE FALSE TRUE FALSE
x %in% y # x的元素是否在y中
# [1] FALSE TRUE TRUE FALSE
- 数学计算
x+y
- 连接 生成一个字符串型数据
paste(x ,y, sep = ":")
# [1] "1:3" "3:2" "5:5" "1:6"
x == y 与 x %in% y 的区别
- 交集、并集、差集
intersect(x,y) # 取交集去重
union(x,y) # 取并集去重
setdiff(x,y) # 取差集,在x里面有,在y里面没有
# [1] 1
setdiff(y, x) # 取差集,在y里面有,在x里面没有
# [1] 2 6
当两个向量长度不一致
理解一下循环补齐
短的补齐,谁长谁说了算
利用循环补齐简化代码
paste0(rep("gene",3), 1:3)
paste0("gene", 1:3)
向量取子集
[]:将TRUE对应的值挑选出来,FALSE舍弃
括号内的内容:
- 可以是一个与 x 等长的逻辑向量
-
能单独运行成功
修改向量的元素
将符合某种逻辑条件的元素进行修改
x = 8: 12
x[x>10] <-10
简单向量作图
k1 <- rnorm(12)
k2 <- rep(c("a","b","c","d"), each = 3)
plot(k1)
boxplot(k1~k2)
去掉向量倒数第2个向量
x[-(length(x)-1)]
通过拼接生成矩阵
生成100个随机数,将大于2的改为2,将小于-2的改为-2
z = rnorm(100, mean = 0, sd = 18)
z[z < -2] <- -2
z[z > 2] <- 2
向量匹配排序 - match
数据结构
- Vector 向量—一维
x <- sample(100,28)
matrix(x, nrow = 7) #### 竖着排
-
matrix 矩阵-二维
所有的列数据类型相同,两个维度
x1 <- c(1,2,3)
x2 <- c(2,3,4)
x3 <- c(3,4,5)
cbind(x1, x2, x3)
-
data.frame 数据框
多个长度相同、数据类型可以不同的向量按列组合 -
list 列表
长度可以不同、数据类型可以不同
没有行和列的概念,可以有多级元素
数据框
数据框来源
- 在R中新建
- 由已知数据转换或处理得到
- 从文件中读取
- 内置数据集
df <- data.frame(gene = c("gene1","gene2","gene3"), # gene 是 列名, = 之后是列的内容,内容用逗号分隔
sam = c("sample1","sample2","sample3"),
exp = c(32,34,45))
df <- data.frame(gene = paste0("gene",1:3),
sam = paste0("sample",1:3),
exp = c(32,34,45))
df2 <- read.csv("gene.csv")
数据框属性描述
dim(df)
nrow(df)
ncol(df)
rownames(df)
colnames(df)