Day6
今天学习的是R语言最重要的内容,R包,包括镜像的配置,R包的安装及使用,走着
镜像的配置准备
- 查看镜像
options()$repos
options()$BioC_mirror
-
运行结果
查看结果
分别对应清华源和中科大源,没问题
设置镜像源,应修改profile文件,在Rstudio中打开,并将以下两句保存在文件中,文件位置在/R/etc中
options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
R包的安装
install.packages(“要安装的包名称”) #安装R包
install.packages("名称", repos = "https://mirrors.ustc.edu.cn/CRAN/") #指定镜像地址
library("包名") #使用前要先载入R编译环境
detach("package:包名") #将R包移除环境,但可以重新载入
remove.packages("包名") #卸载R包,彻底抹杀
- 注意,用
detach("package:包名")
并不是卸载,只是移出了环境,用library()
后仍可继续使用
神器dplyr的基础函数使用
- 新增列
mutate(test, new = Sepal.Length * Sepal.Width)
为test新增加一列,名为new,值为Sepal.Length和Sepal.Width相乘
运行结果 - 数据选择
select()
select(test,2)
选择test的第二列
运行结果
select(test,Petal.Width)
筛选test中名为Petal.Width的这一列
运行结果 - 数据筛选
filter()
与筛选行大同小异,可以按行数,名称,以及数据的特性来筛选 - 数据重新排序
arrange()
arrange(test,Sepal.Width)
对test以Sepal.Width这一列数据进行排序,默认为从小到大
运行结果
arrange(test,desc(Sepal.Width))
带上desc为从大到小排序
运行结果 - 对数据进行汇总
summarise()
summarise(test, mean(Sepal.Length), sd(Sepal.Length))
计算test中Sepal.Length这一列的平均数和标准差(也可以用来求极值,求和,平均数,出现次数等,配合group_by
进行分组可以实现更多功能)
运行结果
神器dplyr的实用操作
- 管道函数
%>%
含义为直接将前一步的数据结果作为参数直接传递给下一步,省略了许多赋值过程
test%>%group_by(Species)%>%summarise(mean(Sepal.Length),sd(Sepal.Length))
如这里即为将test中的Species分组,再求平均数和标准差
运行结果 - 统计各种数据出现的次数
count
count(test,Species)
统计test数据的Species列中,有哪些数据,各出现了几次
运行结果
神器dplyr中数据的连接关系
- 先生成两个数据集t1和t2
t1 <- data.frame(x = c('a','b','c','x'), y = c("1","B","3",'D'))
t2 <- data.frame(x = c('a','b','c','d','e','f'), z = c(1,2,3,4,5,6))
两个数据集 - 对数据集进行左连接
left_join(t1,t2,by='x')
因为是左连接,只会保留t1拥有的x对应的y值和z值,而在t2中不存在x与z的关系,找不到对应z值,则为NA
运行结果 - 对数据集进行左连接
right_join(t1,t2,by='x')
因为是右连接,只会保留t2拥有的x对应的y值和z值,而在t1中不存在d、e、f与y的关系,找不到对应y值,则为NA
运行结果 - 对数据集进行内连接
inner_join(t1,t2,by='x')
相当于交集,只会保留t1与t2均拥有的x与其所对应的y值和z值
运行结果 - 对数据集进行全连接
full_join(t1,t2,by='x')
相当于并集,将会保留所有的x于其对应的y值和z值,不存在的为NA
运行结果 - 对数据集进行半连接
semi_join(t1,t2,by='x')
半连接也是取交集,与内连接的不同在于,半连接只是筛选出t1与t2均拥有的x,但并不输出t2的z值,只在t1内部进行筛选
运行结果 - 对数据集进行反连接
anti_join(t1,t2,by='x')
与半连接相反,输出t2中不存在的x值于其对应的y值关系
运行结果
相同点:半连接与反链接均只对前者进行筛选,不输出后者的数据
- 数据集的合并
bind_rows(t1,t2)
#要求数据集有相同的列数,不存在的仍输出NA
bind_cols(t1,r1)
#要求数据集有相同的行数
运行结果