title: "R_basic"
author: "Mande Xue"
date: "2020/4/14"
output:
html_document: default
(所有代碼參考自生信寶典-R學(xué)習(xí)教程)
knitr::opts_chunk$set(echo = TRUE)
R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
#creat a vector
a <- c(rnorm(5), rnorm(5,1),runif(5),runif(5,-1,1),1:5, rep(0,5),c(2,10,11,13,4),scale(1:5)[1:5])
a
# ncol = 5 ,
# byrow = T, fill the matrix by row
a <- matrix(a, ncol = 5, byrow = T)
a
# 按行加和
# rowSums(a)
#去除全部為零的行
a <- a[rowSums(abs(a))!= 0,]
a
a*2
log2(abs(a)+1)
apply(a,2,var)
# 1 按行
# 2 按列
apply(a,1,mean)
b = a[apply(a,1,mean) > 0,]
b
# order函數(shù) 排序
# mad 中值絕對(duì)偏差
order(apply(b,1,mad),decreasing = T)
c = b[order(apply(b,1,mad),decreasing = T),]
c
# 添加行名
rownames(c) <- paste("Gene",letters[1:nrow(c)],sep = "_")
# 添加列名
colnames(c) <- toupper(letters[1:ncol(c)])
c
#轉(zhuǎn)置
expr = t(c)
expr
#矩陣操作
expr2 =expr
expr2[expr2 < 0] = 0
expr2
expr2 <- as.data.frame(expr2)
str(expr2)
#利用列名當(dāng)索引
expr2[expr2$Gene_c < 1 ,"Gene_b"]<-1
expr2
# 讀入樣品信息
sampleInfo = "Samp;Group;Genotype
A;Control;WT
B;Control;WT
D;Treatment;Mutant
C;Treatment;Mutant
E;Treatment;WT
F;Treatment;WT"
phenoData = read.table(text=sampleInfo,sep=";", header=T, row.names=1, quote="")
phenoData
# %in% 函數(shù)的過(guò)濾功能
phenoData = phenoData[rownames(phenoData) %in% rownames(expr),]
phenoData
# merge matrix
# by = 0炕檩,按行的名字排序
# by = columnname 按照共有的某一列合并
merge_data <- merge(expr,phenoData,by = 0, all.x = T)
merge_data
rownames(merge_data) <-merge_data$Row.names
merge_data
merge_data[,-1]
merge_data
merge_data[sapply(merge_data, is.numeric)]