Day6-hongh

思维导图(请关注生信星球微信公众号)

学习R包

  • 安装R包:install.packages("")
  • 加载R包:library(

学习dplyr包

  • mutate(),新增列
  • select(),按列筛选
  • filter()筛选行
  • arrange(),按某1列或某几列对整个表格进行排序
  • summarise():汇总

dplyr实用技能

  • 管道操作 %>% (cmd/ctr + shift + M)
  • count统计某列的unique值

dplyr处理关系数据

  • 內连inner_join,取交集
  • 左连left_join
  • 全连full_join
  • 半连接:返回能够与y表匹配的x表所有记录semi_join
  • 反连接:返回无法与y表匹配的x表的所记录anti_join
  • 简单合并
library(dplyr) #加载包
iris #查看数据集结构
test <- iris[c(1:2,51:52,101:102),] #选取数据集固定行
mutate(test,new=Sepal.Length*Sepal.Width) # 新建变量
select(test,1) #选择第一列
select(test,c(1:5)) #选择1-5列
select(test,Sepal.Length) # 选择列名为Sepal.Length
filter(test,Species == "setosa") #选择 变量为setosa的行
arrange(test,Sepal.Length)  # 按照Sepal.Length 从小到大排序
arrange(test,desc(Sepal.Length)) # 按照Sepal.Length 降序
summarise(test,mean(Sepal.Length),sd(Sepal.Length)) # 求解均值和方差
group_by(test,Species) #按照 Species 分类
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) #分别对  Species 分类 求值
test %>%                                                       #管道操作
  group_by(Species) %>% 
  summarise(mean(Sepal.Length), sd(Sepal.Length))
count(test,Species) # 分类求频数
options(stringsAsFactors = F)
test1 <- data.frame(x=c('b','e','f','x'), #建立数据集开始合并
                    z=c("A","B","C","D"),
                    stringsAsFactors = F)
test1
test2 <- data.frame(x = c('a','b','c','d','e','f'), 
                    y = c(1,2,3,4,5,6),
                    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') #半连接
anti_join(x = test2, y = test1, by = 'x') # 反连接
test1 <- data.frame(x = c(1,2,3,4), y = c(10,20,30,40))
test1
test2 <- data.frame(x = c(5,6), y = c(50,60))
test2
test3 <- data.frame(z = c(100,200,300,400))
test3
bind_rows(test1, test2) #简单合并
bind_cols(test1, test3)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容