38reshape2 39tidyr 40dplyr
38reshape2
1.merge:把一个或多个共有的函数合并
例如:x<-data.frame(k1=c(NA,NA,2,3,4),k2=c(1,NA,NA,3,4),data=1:5)
y<-data.frame(k1=c(1,2,3,4,5),k2=c(NA,2,3,4,5),data=1:5)
merge(x,y,by=c("k1","k2"))k1大的交集
2.reshape2
install.packges("reshape2")
library(reshape2)
内置数据集:airquality
aq1<-melt(airquality)
名字小写:names(airquality)<-tolower(names(airquality))
aqw<-dcast(aq1,month+day~variable)
aqw<-dcast(aq1,month~variable,fun.aggregate=mean,na.rm=TRUE)
39tidyr
安装包:install.packages(c("tidyr","dplyr"))
加载包:libary(tidyr)
tidyr包有4个函数:
①gather:把宽数据转为长数据
②spread:把长数据转为宽数据
③unit:多列合为一列
④separate:一列分为多列
实例
mtcars
取10行3列
tdata<-mtcars[1:10,1:3]
tdata<-data.frame(names=rownames(tdata),tdata) #取tdata的行名
row.names: NULL或单个整数或字符串,指定某列用作行名,或者一个字符或整型向量用作数据框的行名。
gather(tdata,key="Key",value="Value",2:4)#2到4列
gdata<-gather(tdata,key="Key",value="Value",2:4)
separate(gdata,col=Value,into=c("A","B"))#col=列名
unite(x,col="AB",A,B)#col="AB”x新列名
40dplyr
library(dplyr)
查看函数: ls("package:dplyr")
①filter过滤:dplyr::filter(iris,Sepa1.Length>7)
②distinct:去重复行。dplyr:distinct(iri[1:10,],iris[1:15,])
③slice:取数据的任意行dplyr::slice(iris,10:15)
④sample_n随机取几行dplyr::sample_n(iris,10)
⑤sample_frac按比例随机取dplyr::sample_frac(iris,0.1)
⑥arrange排序dplyr::arrange(iris,Sepa1.Length)
统计函数
平均数 summarise(iris,avg=mean(Sepal.Length)) 求和 summarise(iris,sum=sum(Sepal.Length))
链式操作符: %>% 将一个函数的输出作为一个函数的输入 Rstudio 使用ctrl+shift+M
head(mtcars,20)%>%tail(5)#取16到20行
分组函数 x<-head(mtcars) dplyr::group_by(x,vs)
加新的变量 dplyr::mutate(mtcars,new=vs+am+gear+carb)
双表格的操作
①
a=data.frame(x1=c("A","B","C"),x2=c(1,2,3))b=data.frame(x1=c("A","B","D"),x3=c(T,F,T))
以左边的表为主left 并集full交集semi差集anti
dplyr::left_join(a,b,by="x1")
②j加一列mtcars<-mutate(mtcars,Model=rownames(mtcars))
first<-slice(mtcars,1:20)
second<-slice(mtcars,1:30)
交集:intersect(first,second)
并集:dplyr::union_all 补集:setdiff
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具