【作业1】当前工作目录是什么路径
getwd()#获取当前工作目录
【作业2】新建6个向量,基于不同的原子类型。(重点是字符串,数值,逻辑值)
character_vector <- c("a","b","c","d")#字符型向量
number_vector <- c(2,3,4,5,6,7)#数值型向量
logical_vector <- c(T,F,T,F,F)#逻辑型向量
LOGICAL_VECTOR <- C(TRUE,TRUE,FALSE)#报错
LOGICAL <- c(TRUE,TRUE,FALSE)#无报错
【不解2.1】
创建逻辑型向量:LOGICAL_VECTOR <- C(TRUE,TRUE,FALSE),
[error]:Error in C(TRUE, TRUE, FALSE) : 不能把对象解释成因子,
发现创建向量时,写成了大C而不是小c。
【不解2.2】新概念——原子向量
[笔记]在R For Data Science这本书,有对向量概念做了详细的介绍:
向量主要有两种:
(1)原子向量:逻辑型、 整型、 双精度型、 字符型、 复数型和原始型。
①整型和双精度型向量又统称为数值型向量。
②原子向量中的各个值都是同种类型的。
(2)列表,有时又称为递归向量,因为列表中也可以包含其他列表。
列表中的各个值可以是不同类型的。
【不解2.3】新概念——整型,双精度型,复数型和原始型(后面两种该书未介绍)
(1)双精度型:双精度型是近似值。
①双精度型表示的是浮点数,不能由固定数量的内存精确表示。
②这意味着你应该将所有双精度数当成近似值。
(2)整数型:如果想要创建整型数值,可以在数字后面加一个 L。
查看向量类型的函数区别:
class(number_vector)#"numeric"
typeof(number_vector)#"double"
integer_vector <- c(1L,2L,3L,4L)
typeof(integer_vector)#"integer"
typeof(1:10)#"integer"
typeof(2)#"double"
[新知]class和typeof的区别是typeof可以区分数值型向量是整数型和双精度型。
[发现]原来number_vector <- c(2,3,4,5,6,7),创建的是双精度型向量。
【作业3】新建一些数据结构,比如矩阵,数组,数据框,列表等,重点是数据框,矩阵
my_matrix <- matrix(1:10,nrow=5,ncol=2)
my_array <- array(1:24,c(2,3,4))
my_dataframe <- data.frame(a=c(1:10),b=paste("q",c(1:10),sep = "."),c=1:10>3)
my_list <- list(my_matrix,my_array,my_dataframe)
class(my_matrix)#"matrix"
class(my_array)#"array"
class(my_dataframe)#"data.frame"
class(my_list)#"list"
【作业4】在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6
my_df_t <- t(my_dataframe)#因为初建的数据框不符合题目要求,所以行列转置一下
my_df_t[c(1,3),]
my_df_t[,c(4,6)]
my_dataframe[5:8,1:2]
【作业5】
使用data函数来加载R内置数据集rivers,描述它。
并且可以查看更多的R语言内置的数据集。
data(rivers)
class(rivers)
dim(rivers)#"NULL"
length(rivers)
fivenum(rivers)
?fivenum
summary(rivers)
quantile(rivers)
tail(sort(rivers))#查看最长的六条河的长度
DATA SCIENCE FOR R 这本书教了用数字可视化技术去进行数据探索
尝试着用作图去探索数据
boxplot(rivers)
barplot(rivers)
barplot(sort(rivers))
hist(rivers)
head(rivers)
tail(order(rivers))
rivers[tail(order(rivers))[6]]
【问题6】下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。(参考B站生信小技巧获取runinfo table)
getwd()
sc <- read.table(file = "SraRunTable.txt",header = T,sep = "\t")
#网页链接打不开,只能下载题目的下载链接,
class(sc)#dataframe
dim(sc)#768行31列
str(sc)#查看各列属性
【问题7】下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息sample.csv
读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。
sample <- read.csv(file = "sample.csv",header = T)
#sample <- read.csv(file = "sample.csv",header = T,sep = ",")
class(sample)#dataframe
dim(sample)#768行12列
str(sample)#查看各列属性
【问题8】把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来,使用merge函数。
accession <- sample$Accession
sample_name <- sc$Sample_Name
table(a==b)#全部为true,说明这两列内容都一样
merge <- merge(sc,sample,by.y = "Accession",by.x = "Sample_Name")
dim(merge)#42列
网友评论