复试前的一天
dplyr包的使用
mutate()新增列
library(dplyr)
test <- iris[c(1:2,51:52,101:102),]
mutate(test,new1=Sepal.Length*Sepal.Width,new2)
加一列
select()
select(test,2)#按列号筛选
select(test,c(2,3,4))
select(test,Sepal.Width)#按列名筛选
vars <- c("Sepal.Width","Sepal.Length")
select(test,one_of(vars))#按列名筛选多个
选行
filter(test,Species == "setosa")
filter(test,Species=="setosa"&Sepal.Length >5)
filter(test,Species %in% c("setosa","versicolor"))
arrange() 根据一项或几项对表格进行排列
arrange(test,Sepal.Length)#从小到大
arrange(test,desc(Sepal.Length))#从大到小
summarize()
summarize(test,mean(Sepal.Length),sd(Sepal.Length))
group_by(test,Species)#根据指定一项分组
summarize(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Length))#根据分类算每组的平均数和标准差
%>%
tidyverse的管道操作
###下面是洋气的管道操作
library(tidyverse)
test %>%
group_by(Species)%>%
summarize(mean(Sepal.Length),sd(Sepal.Length))
count()统计某项的值
count(test,Species)###清点个数
表格的连接
内连inner_join取交集
左连
全连
半连接
反连接
简单合并
###表格的连接
test1 <- data.frame(x=c("a","b","c","d"),z=c(10,20,30,40),stringsAsFactors = FALSE)
test2 <- data.frame(x=c("c","d","e","f","g"),y=c(11,12,13,14,15),stringsAsFactors = FALSE)
inner_join(test1,test2,by="x")
left_join(test1,test2,by="x")
left_join(test2,test1,by="x")
full_join(test1,test2,by="x")
semi_join(test1,test2,by="x")
anti_join(test1,test2,by="x")
bind_rows(test1,test2)
bind_cols(test1,test2)
网友评论