目前,我有两个包含名称数据的表,如果第二个列表中的两个列表之一的名称也是这样,我将使用%in%创建一个新的二进制变量:
publications$IsTrainee = 1*(publications$AuthorLast %in% trainees$TraineeLast)我还想要创建一个新的变量来打印两个列表中出现的字符串(名称),但是我很难找到一个允许它的函数。我查看了stringr包,但可能遗漏了什么。多谢百万!
受训人员桌:
TraineeNumber Program LastName EntryDate
1 1 K12 LEE 2007
2 2 K12 PAN 2007
3 3 K12 SHAIKH 2007
4 4 K12 MINZENBERG 2007
5 5 K12 BREMER 2008
6 6 K12 UNDERWOOD 2008
7 7 K12 AVDALOVIC 2008出版物表:
PubNum Publication_Year AuthorLast CoauthorLast1 CoauthorLast2 CoauthorLast3
1 1 2007 ANUURAD LU RUBIN PEARSON
2 2 2006 BARRY LOCKRIDGE SALAMAT TINLING
3 3 2006 CARTER
4 4 2006 CARTER HAN ABRESCH JENSEN
5 5 2006 CHUI ZAROW MACK ELLIS
6 6 2007 CRITCHFIELD LEMONGELLO WALKER GARCIA出版物$IsTra们:
[1] 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
[41] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
[81] 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0期望产出:
PubNum Publication_Year AuthorLast CoauthorLast1 CoauthorLast2 Trainee TraineeName
1 1 2007 ANUURAD LU RUBIN 0 NA
2 2 2006 BARRY LOCKRIDGE SALAMAT 1 BARRY
3 3 2006 CARTER 1 CARTER
4 4 2006 CARTER HAN ABRESCH 1 CARTER
5 5 2006 CHUI ZAROW MACK 0 NA
6 6 2007 CRITCHFIELD LEMONGELLO WALKER 1 WALKER发布于 2014-04-09 14:46:46
你是否只是在寻找类似于
names <- c("albert", "john", "louise")
set <- c("louise", "james", "john")
names[names %in% set]还是你还想要别的东西?
编辑以回应评论:
那ifelse(names %in% set, names, NA)呢
https://stackoverflow.com/questions/22965469
复制相似问题