R语言VLOOKUP
业务背景:人力数据一份,排查人员数据一份,需要弄清楚那些人员在人力数据范围内,哪些人员不在人力数据范围内,使用程序判断,结果如下:
查找两个数据表中的身份证号情况
由于数据是excel格式,需要加载依赖包
library(readxl)
library(sqldf)
library(openxlsx)
library(dplyr)
设置固定路径,cmd下配置R语言环境变量
setwd(“C:\data\”)
分别读取人力数据和排查数据
data1<-read_excel(“数据.xlsx”,sheet=“问卷数据”)
data2<-read_excel(“数据.xlsx”,sheet=“花名册数据”)
colnames(data1)[colnames(data1)==“身份证号:”] <-“id”
data1
i
d
<
−
t
o
u
p
p
e
r
(
d
a
t
a
1
id<-toupper(data1
id<−toupper(data1id)
data2
身
份
证
号
<
−
t
o
u
p
p
e
r
(
d
a
t
a
2
身份证号<-toupper(data2
身份证号<−toupper(data2身份证号)
data2
i
d
<
−
d
a
t
a
2
id<-data2
id<−data2身份证号
data001<-sqldf(“select * from data2 inner join data1 where data1.id=data2.id”)
write.xlsx(data001,“问卷和花名册同时存在.xlsx”,fileEncoding=‘GBK’)
m1<-data2 %>%left_join(data1, by = “id”) #以问卷为基准
m2<-data1 %>%left_join(data2, by = “id”) #以花名册为基准
mm1<-m1[which(is.na(m1
序
号
.
y
)
)
,
]
m
m
2
<
−
m
2
[
w
h
i
c
h
(
i
s
.
n
a
(
m
2
序号.y)),] mm2<-m2[which(is.na(m2
序号.y)),]mm2<−m2[which(is.na(m2序号.y)),]
write.xlsx(mm1,“问卷无花名册中有.xlsx”,fileEncoding=‘GBK’)
write.xlsx(mm2,“问卷有花名册中无.xlsx”,fileEncoding=‘GBK’)