附带python题目http://www.runoob.com/python/python-100-examples.html
R数据框操作:http://www.cnblogs.com/li-20151130/p/9028634.html
R中的merge函数类似于Excel中的Vlookup,可以实现对两个数据表进行匹配和拼接的功能。与Excel不同之处在于merge函数有4种匹配拼接模式,分别为inner,left,right和outer模式。 其中inner为默认的匹配模式,可与sql语言中的join语句用法。
merge 连接两个数据,官方参考文档语法
merge(x, y, by = intersect(names(x), names(y)),
by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
sort = TRUE, suffixes = c(".x",".y"),
incomparables = NULL, ...)
举例说明如下
1、创建数据
# 连接列置于第1列; 有多个公共列,在公共列后加上x,y表示数据来源,.x表示来源于数据集w,.y表示来源于数据集q
# 数据集中w中的 name = ‘D’ 不显示,数据集中q中的 name = ‘F’ 不显示,只显示公有的name行,并且用q数据集A行匹配了w数据集所有的A行
6、outer 模式,将两张表的数据汇总,表中原来没有的数据置为空
merge(w, q, all=TRUE, sort=TRUE)
# all = TRUE 表示选取w, q 数据集的所有行,sort = TRUE,表示按 by 列进行排序,默认升序
7、left 匹配模式
merge(w ,q ,all.x=TRUE,sort=TRUE) # 建议使用 指定了连接列 的情况
# 多个公共列,未指定连接列
# 左连接,设置 all.x = TRUE,结果只显示数据w的列及w在q数据集中没有的列
merge(w, q, by = 'name',all.x = TRUE, sort = TRUE) # 指定连接列
# 多个公共列,指定连接列
# 左连接,设置 all.x = TRUE,结果只显示w所有name值
8、right 匹配模式
merge(w ,q ,by = 'name', all.y=TRUE,sort=TRUE)
# 多个公共列,指定连接列
# 左连接,设置 all.y = TRUE,结果只显示q所有name值的记录
https://blog.csdn.net/u010652755/article/details/72982227
9、实例应用
library(readxl)
library(xlsx)
cdir = setwd('D:\\R')
A = read_excel('A.xlsx', 1)
B = read_excel('B.xlsx', 1)
dt = merge(A ,B ,all=TRUE, sort=TRUE, by = 'stuID')
dt2 = subset(dt, dt$math == 'A',select=names(dt))
# 在D:\\R 目录下创建sample.csv文件
cname = "D:\\R\\sample.csv"
# 将匹配后的数据写入到 sample.csv 文件中
write.csv(dt2, cname ,sep=",")