#统计每行表达的百分比
#>0表现>0的占的百分比
for (i in 1:30) {
print(mean(Express[i,]>0))
}
for (i in 1:nrow(Express)) {
print(mean(Express[i,]>0))
}
#数据每行显示不为0的个数
x=e[[“gt0”]]<-Reduce(’+’,as.data.frame(e>0))
print(x)
####刚刚的测试数据
a=1:20
dim(a)=c(4,5)
a[1,1]=0
a[2,1]=0
a[2,2]=0
View(a)
a=as.data.frame(a)
x=a[[“gt0”]]<-Reduce(’+’,as.data.frame(a>0))
print(x)
#统计相邻的0的值 类型为list
x=apply(e,1,function(x){
rle(x)
l
e
n
g
t
h
[
r
l
e
(
x
)
length[rle(x)
length[rle(x)value==0]
})
#只要有0全部剔除
#row_sub=apply(e,1,function(row) all(row !=0))
#View(e[row_sub,])
#选取部分数据进行分析
#Express=Express[1:5000,1:2]
#按照数据选取表达不为0的数据行 20代表最低的不为0的单个数据个数
Express=Express[apply(Express,1,function(x) sum(x>1)>20),]
dim(Express)
Express=read.table(“E:/EXP0009_lnc_log2_afterQC.txt”,header = T,comment.char=’!’,stringsAsFactors = FALSE,quote = “”,sep=’\t’)
Express=Express[-1,-1]
Express=as.data.frame(Express)
#write.table(Express,file=“E:\resultTxt.txt” , sep =" ", row.names =TRUE,col.names =TRUE, quote =FALSE)
#Express=read.table(“E:/resultTxt.txt”,header = T)
#我们拿到的一些数据往往活存在很多字段,但是一些字段的数据对于结果是没有意义,或者意义极小,但是在做机器学习的过程中也会参与计算,对我们最终分析结果造成不利影响,我们要根据实际情况,把数据进行降维,使得计算过程更轻便。
library(sqldf)
library(dplyr)
为数据集增加序号列(id)
Express$id <- c(1:nrow(Express))
将数据集中70%的数据划分为训练集
Express_train <- sample_frac(Express, 0.7, replace = TRUE)
使用sql语句将剩下的30%花费为测试集
Express_test <- sqldf("
select *
from Express
where id not in (
select id
from Express_train
)
")
去除序号列(id)
Express_train <- Express_train[,-1]
Express_test <- Express_test[,-1]
View(Express_train)
对数据集进行主成分分析
Express_train_pca <- princomp(Express_train[,1:ncol(Express_train)])
绘制碎石图
screeplot(Express_train_pca, npcs = ncol(Express_train),type=“lines”)
提取主成分的信息
summary(Express_train_pca)
第一行是特征值(Standard deviation),
第二列是方差的贡献率(Proportion of Variance)
第三列是累计方差的贡献率(Cumulative Proportion)
方差的贡献率: 标准化后的特征值,全部相加等于100%
累计方差的贡献率:累加后的方差的贡献率
查看各个主成分与原始数据的关系
loadings代表每一个成分中之前特征系数
Express_train_pca$loadings
使用之间建好的公式对测试集进行降维处理
new_test <- as.matrix(Express_test[,1:ncol(Express_train)])%*%as.matrix(Express_train_pcaKaTeX parse error: Expected 'EOF', got '#' at position 65: …rame(new_test) #̲合并 Total<-cbind…group=factor(Total$group)
ggplot(Total,aes(x=Comp.1, y=Comp.2,col = group))+geom_point()
library(ggplot2)
ggplot(Express, mapping = aes(x=V1, y=V2,group=V3))+geom_point()
geom_point(color=“red”,size=1,shape=0)
#ggplot(Express, mapping = aes(x=V1, y=V2,col = V3))+geom_point(colour = “black”, size = 4.5)+geom_point(colour = “pink”, size = 4)
ggplot(Express, mapping = aes(x=X, y=Y,col = clustering))+geom_point(size = 0.5,alpha=0.7)+scale_color_gradient(‘clustering’, low = “red”, high = “blue”)
library(ggplot2)
Express
c
l
u
s
t
e
r
i
n
g
=
f
a
c
t
o
r
(
E
x
p
r
e
s
s
clustering=factor(Express
clustering=factor(Expressclustering)
#Express$clustering表示获取Express中的cluster列 并转化其类型
#将聚类编号的整型int改成factor类型,才能画出不同的颜色
#因子(factor)数据的类型分为名义型、有序型和连续型,其中名义型和有序型被称为因子,默认因子排序是按照字符排序
ggplot(Express,aes(x=X, y=Y,col = clustering))+geom_point()