我想合并两个数据帧,保持其中一个的原始行顺序(下面的示例中的df.2)。
以下是一些示例数据(类列中的所有值都在两个数据帧中定义):

df.1 <- data.frame(class = c(1, 2, 3), prob = c(0.5, 0.7, 0.3))
df.2 <- data.frame(object = c('A', 'B', 'D', 'F', 'C'), class = c(2, 1, 2, 3, 1))

如果我这样做:

merge(df.2, df.1)

结果是:

class object prob
1 1 B 0.5
2 1 C 0.5
3 2 A 0.7
4 2 D 0.7
5 3 F 0.3

即使我设置 sort = FALSE:

merge(df.2, df.1, sort = F)

结果是:

class object prob
1 2 A 0.7
2 2 D 0.7
3 1 B 0.5
4 1 C 0.5
5 3 F 0.3

但是我想要的是:

class object prob
1 2 A 0.7
2 1 B 0.5
3 2 D 0.7
4 3 F 0.3
5 1 C 0.5

解决方案如下:

方案一:join函数 使用详解入口

join(df.2,df.1)
Joining by: class
object class prob
1 A 2 0.7
2 B 1 0.5
3 D 2 0.7
4 F 3 0.3
5 C 1 0.5

方案二:

创建一个变量,它给出df.2中的行号。然后,一旦合并了数据,就可以根据这个变量对新的数据集进行排序。下面是一个例子:

df.1<-data.frame(class=c(1,2,3), prob=c(0.5,0.7,0.3))
df.2<-data.frame(object=c('A','B','D','F','C'), class=c(2,1,2,3,1))
df.2$id  <- 1:nrow(df.2)
out  <- merge(df.2,df.1, by = "class")
out[order(out$id), ]

方案三:inner_join函数 使用教程入口

inner_join(df.2,df.1)

Joining by: “class”
object class prob
1 A 2 0.7
2 B 1 0.5
3 D 2 0.7
4 F 3 0.3
5 C 1 0.5

结束


R语言使用merge函数合并数据,如何保持原始数据顺序相关推荐

  1. R语言使用merge函数匹配数据(vlookup,join)

    参考文章 http://www.afenxi.com/post/41432 R中的merge函数类似于Excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能.与Excel不同之处在于m ...

  2. R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator )

    R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator (i ...

  3. R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称、将数据写入Excel文件新的表单(sheet)中、将文件保存为xls文件格式(而不是xlsx)

    R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称.将数据写入Excel文件新的表单(sheet)中.将文件保存为xls文件格式(而不是xlsx) 目录

  4. R语言使用plot函数可视化数据散点图,使用title函数为可视化图像设置自定义标题名称、自定义adj参数将标题向右侧移动

    R语言使用plot函数可视化数据散点图,使用title函数为可视化图像设置自定义标题名称.自定义adj参数将标题向右侧移动 目录

  5. R语言使用plot函数可视化数据、使用pch参数设置数据点的形状、使用lwd参数和bg参数设置数据点边框宽度、背景颜色(仅限于 21到25)

    R语言使用plot函数可视化数据.使用pch参数设置数据点的形状.使用lwd参数和bg参数设置数据点边框宽度.背景颜色(仅限于 21到25) 目录

  6. R语言使用plot函数可视化数据、使用type参数自定义设置可视化的类型(数据点和线关系的类型)、设置type参数为s则为阶梯状显示

    R语言使用plot函数可视化数据.使用type参数自定义设置可视化的类型(数据点和线关系的类型).设置type参数为s则为阶梯状显示 目录

  7. R语言使用plot函数可视化数据散点图,使用cex.sub参数自定义设置次标题的字体大小(subtitle)

    R语言使用plot函数可视化数据散点图,使用cex.sub参数自定义设置次标题的字体大小(subtitle) 目录

  8. R语言使用plot函数可视化数据散点图,使用cex.lab参数自定义设置坐标轴标签字体的大小(axis labels)

    R语言使用plot函数可视化数据散点图,使用cex.lab参数自定义设置坐标轴标签字体的大小(axis labels) 目录

  9. R语言使用plot函数可视化数据散点图,使用cex.main参数自定义设置主标题的字体大小

    R语言使用plot函数可视化数据散点图,使用cex.main参数自定义设置主标题的字体大小 目录

最新文章

  1. html弹窗赋值给查询框,bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...
  2. 如何充分利用各大银行免费资源最大限度减少理财成本
  3. block--内存管理
  4. python工程控件_工程脚本插件方案 - c集成Python基础篇
  5. Jmeter中的变量(三)
  6. 如何准确的判断一个数据的类型
  7. 洛谷P2347 砝码称重 [2017年4月计划 动态规划01]
  8. fedora mysql添加密码_Fedora14下 mysql更改密码
  9. qt plugins 插件框架
  10. 软件工程专业和网络工程专业的区别
  11. php 数组处理方法,关于PHP数组问题的处理方法
  12. IT人看十四主星代表
  13. 怎么查看笔记本内存条型号_怎么查看笔记本内存条型号?2种查看笔记本内存型号方法...
  14. numpy到pytorch,鸟枪换炮
  15. base64 的加密和解密
  16. iOS 的UIView 的hitTest的分析
  17. 基于stm32c8t6的两轮平衡小车 第二篇——原理图及CubeMx配置
  18. 关于github的license选择
  19. 蓝桥杯-完全二叉树的权值(运用数学思想超快解题)
  20. 04 【eCharts样式定制系列】矩形树图自定义颜色

热门文章

  1. 转:完全卸载Oracle方法
  2. File upload error - unable to create a temporary file in bUnknown/b on line
  3. 在appdelegate中 设置跟视图控制器 但是没办法全屏
  4. spring---aop(3)---Spring AOP的拦截器链
  5. Android——Android Studio导入SlidingMenu类库的方法
  6. [转]Spring中的ContextLoaderListener使用
  7. 使用UIActivityIndicatorView 和多线程
  8. 【SpringMVC 笔记】控制器 Controller 与 RestFul 风格
  9. 【网络安全工程师面试题】数据库存在的漏洞及渗透方法
  10. Tomcat漏洞修复方法【补丁下载及安装详细流程】