首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的列映射

R中的列映射
EN

Stack Overflow用户
提问于 2018-03-04 18:30:30
回答 1查看 98关注 0票数 0

我有两个columns.One列,上面写着'Degree‘,它由来自数据框A .like的27000行字符组成

代码语言:javascript
复制
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文件中包含以下条目

代码语言:javascript
复制
bachelor
bsc
b sc
btech
b tech
b engg
bbm
bfa
bs
llb
bds
b eng
bdes

对于研究生,PG_alias包含

代码语言:javascript
复制
master
post graduation
msc
m sc
mba
m tech

对于博士学位,phd_alias包含

代码语言:javascript
复制
doctor
phd
ph d
dphil

现在,我希望将数据框A的Degree列映射到3个不同文件中的所有这3个别名,并生成如下输出

代码语言:javascript
复制
pg
pg
pg
ug
pg
pg
pg
ug
pg

对于UG,我正在尝试下面的代码。

代码语言:javascript
复制
A$Degree[A$Degree %like% UG_Alias$Degree] <- "pg"

但是不能达到理想的output.Please,帮我找出一些解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 19:00:22

如果您对所使用的缩写和提到的教育程度有很好的认识,您可以尝试对此进行扩展。

代码语言:javascript
复制
# 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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49094389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档