这是我看生信技能树的视屏记得笔记
#读取一个.txt文件(此处还可以为csv文件,但是不可以是Excel,当读取CSV时不需要后面的参数)
Q = read.table("GSM1545535_10_6_5_11.txt", header = T, sep = "\t")
#此处必须有stringsAsFactors这个参数
a = read.csv("GSM1545535_10_6_5_11.csv", stringsAsFactors = F)
unlist(lapply(strsplit(a$GeneLength, ','), function(x){x[2]}))
install.packages(stringr)
library(stringr)
vignette('stringr')
str_split()
#查看
View(Q)
#查看Q类型
class(Q)
#取Q第1到5行给q
q = Q[1:5,]
#赋值并打印
(w = q[1 : 3, ])
#定义向量1
seq(1,10)
#seq(1:10),这么写是错的
#定义矩阵
e = matrix(1 : 10, 2)
View(e)
Q[, 1]
#比对向量Q的第一列的每个元素是否等于68507,返回元素为逻辑类型的向量
Q[, 1] == 68507
table(Q[, 1] == 20668)
#输出为:
#FALSE TRUE
#27178 1
#返回哪一行匹配成功
which(Q[, 1] == 20668)
#定义向量2
temp = c(1, 2, 3, 4)
#提取匹配成功的某一行
f = Q[which(Q[, 1] == 20668),]
View(f)
#定义向量3
a = 1 : 3
#求和第一列
sum(Q[,1])
#求均值特殊列
mean(Q$Count)
#找最大值特殊列
max(Q$Count)
#求特殊列的五特征数
fivenum(Q$Count)
#正则匹配,返回匹配成功的行号
grep(097, q[, 1])
(h = q[grep(097, q[, 1]), ])
#正则匹配,返回匹配成功的行的向量,元素类型为逻辑型
grepl(097, q[, 1])
#此处假设去出的列类型为string
temp = q$GeneLength
#循环操作
lapply(strsplit(temp, ','), function(x){x[2]})
#循环操作原理
l = strsplit(temp, ',')
lapply(l, function(x){
#x为包含两个元素的列表
x[2]
})
for(x in l[1 : 4]){
print(x[2])
#x = l[[n]]
}