在学习R的过程中发现,光看书是不行的,看书仅仅停留在理解这个过程,但是我们的最终目的是灵活运用,每天感觉仿佛是看了好多东西,了解了不少,但是自己往后能用到多少,这就是个未知数了,且瞬时记忆的东西过不了多久就会忘记,不如做练习来加深一下印象,毕竟孰能生巧嘛。通过做练习和搬运别人的代码,让我对代码又有了更加深入的理解。
1.创建数据框并自由进行元素的提取
#创建数据框
patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1","Type2","Type1","Type1")
status <- c("Poor","Improved","Excellent","Poor")
patientdata <- data.frame(patientID,age,diabetes,status)
#对1,3行或者2-4行进行提取
patientdata[c(1,3),]
patientdata[c(2:4),]
#使用data()查看内置数据集
data(rivers)
2.读入文件并了解文件构成,并将两文件进行合并
#清空当前环境的所有对象
rm(list = ls())
#设置字符串为非因子
options(stringsAsFactors = F)
getwd()
#文件读取
a <- read.table("RunInfo Table.txt",sep = "\t",header = T)
b <- read.csv("sample.csv",header = T)
#merge及准备
colnames(a)
colnames(b)
d <- merge(a,b,by.x = "Sample_Name",by.y = "Accession")
e <- d[,c("MBytes","Title")]
#保存为Rdata方便下一步进行
save(e,file = "input.Rdata")
3.对字符串进行拆分统计并画图
rm(list = ls())
options(stringsAsFactors = F)
load(file = "input.Rdata")
#将Title字符串中的第三个元素作为plate
plate=unlist(lapply(e[,2],function(x){
# x=e[1,2]
x
strsplit(x,'_')[[1]][3]
}))
#返回list
class(strsplit(e[,2],'_'))
#对plate的内容进行统计
table(plate)
#构建箱线图,频数图和密度图
boxplot(e[,1]~plate)
hist(e[,1])
plot(density(e[,1]))
4.使用ggplot2对三种图进行再绘制
library(ggplot2)
colnames(e)
ggplot(e,aes(x=plate,y=MBytes))+geom_boxplot()
ggplot(e,aes(x=MBytes))+geom_histogram()
ggplot(e,aes(x=MBytes))+geom_density()
网友评论