生信星球学习笔记-Day5学习R包
安装和加载R包
镜像设置
操作界面设置CRAN的镜像:Tools→Globle options →Packages→Primary CRAN repository
代码设置镜像:
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源
高级版(一次代码,永久生效)
file.edit('~/.Rprofile')
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源
安装
install.packages(“包”)或BiocManager::install(“包”)
加载
library(“包”)或require(“包”)
dplyr五个基础函数
mutate(数据框,列名= ),新增列
mutate(test, new = Sepal.Length * Sepal.Width)
select(数据框,列号或列名),按列筛选
select(test,1)
select(test,Sepal.Length)
filter(数据框, )筛选行
filter(test, Species %in% c("setosa","versicolor")) #%in%包含
arrange( ),按某1列或某几列对整个表格进行排序,默认从小到大
arrange( , desc( ))从大到小
summarise( ):汇总,group_by分组
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
dplyr两个实用技能
管道操作 %>% (cmd/ctr + shift + M),将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存
count统计某列的unique值(unique值是指不重复出现的值)
dplyr处理关系数据
即将2个表进行连接,注意:不要引入factor ?
options(stringsAsFactors = F)
inner_join(test1, test2, by = "x") #內连,取交集
left_join(test1, test2, by = 'x') #左连
full_join( test1, test2, by = 'x') #全连
semi_join(x = test1, y = test2, by = 'x') #半连接:返回能够与y表匹配的x表所有记录
anti_join(x = test2, y = test1, by = 'x') #反连接:返回无法与y表匹配的x表的所记录
bind_rows(test1, test2) #要求列数相同
bind_cols(test1, test3) #要求行数相同
本次作业的疑问,为什么不要引入factor
补充上次作业遗留问题
save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决? 检查变量名X大小写是否与代码中书写一致。
上次作业中 直接使用数据框中的变量 部分
a <-data.frame(case=paste("S",1:50),values=runif(50)) #paste是连接的意思
plot(a$case,a$values) # $限定在a
attach(a) # $限定在a
plot(case,values)
detach(a)#将a删除出搜索环境
with(a,{ plot(case,values)x<<-summary(values) }) #<<的意思是作为全局变量,也就是出了大括号仍有效。
#with就是把所有操作都限制在数据框上
本次操作中遇到的问题
> options(stringsAsFactors = F)
> a <-data.frame(case=paste("S",(1:50)),values=runif(50))
> plot(a$case,a$values)
Error in plot.window(...) : 'xlim'值不能是无限的
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
> options(stringsAsFactors = T)
> a <-data.frame(case=paste("S",(1:50)),values=runif(50))
> plot(a$case,a$values)
不知道是不是options设置字符类型的缘故,更改为stringsAsFactors = T
之后没再报错,不知道这个与 不要引入factor 有什么联系。