我有两个columns.One列,上面写着'Degree‘,它由来自数据框A .like的27000行字符组成
master's degree
master of business administration - mba
master of business administration (mba)
b.art.des
master of engineering (m.eng.)
master of engineering studies
master of business administration (mba)
bachelor’s degree
pgdip现在我有3个单独的CSV文件(名称为UG_alias、PG_alias、phd_alias),其中包含本科生、研究生和博士的别名,就像本科生的UG_alias文件中包含以下条目
bachelor
bsc
b sc
btech
b tech
b engg
bbm
bfa
bs
llb
bds
b eng
bdes对于研究生,PG_alias包含
master
post graduation
msc
m sc
mba
m tech对于博士学位,phd_alias包含
doctor
phd
ph d
dphil现在,我希望将数据框A的Degree列映射到3个不同文件中的所有这3个别名,并生成如下输出
pg
pg
pg
ug
pg
pg
pg
ug
pg对于UG,我正在尝试下面的代码。
A$Degree[A$Degree %like% UG_Alias$Degree] <- "pg"但是不能达到理想的output.Please,帮我找出一些解决方案。
发布于 2018-03-04 19:00:22
如果您对所使用的缩写和提到的教育程度有很好的认识,您可以尝试对此进行扩展。
# create regular expressions
master <- "[Mm]aster|M\\.?([Ss][Cc]?|E(ng)?|A)"
bachelor <- "[Bb]achelor|BSc"
# conditional assignment using pattern matching
A$Degree[grepl(master, A$Degree) & grepl(master, B$Degree_Alias)] <- "pg"
A$Degree[grepl(bachelor, A$Degree) & grepl(bachelor, B$Degree_Alias)] <- "ug"https://stackoverflow.com/questions/49094389
复制相似问题