业务背景:人力数据一份,排查人员数据一份,需要弄清楚那些人员在人力数据范围内,哪些人员不在人力数据范围内,使用程序判断,结果如下:
library(readxl)
library(sqldf)
library(openxlsx)
library(dplyr)
setwd(“C:\data\”)
data1<-read_excel(“数据.xlsx”,sheet=“问卷数据”)
data2<-read_excel(“数据.xlsx”,sheet=“花名册数据”)
colnames(data1)[colnames(data1)==“身份证号:”] <-“id”
data1id<−toupper(data1id<-toupper(data1id<−toupper(data1id)
data2身份证号<−toupper(data2身份证号<-toupper(data2身份证号<−toupper(data2身份证号)
data2id<−data2id<-data2id<−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)),]mm2<−m2[which(is.na(m2序号.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’)