R语言mapply应用一例

需求:求data frame下两列有交集的元素个数,例如,m2和m3存储的都是以逗号分割的字符串,现在求m2和m3的交集,

x1<-data.frame(m1=c(1,2,3),m2=c('f,a,b,c','edfc,avv,c','g,e,f,k')
               ,m3=c('--,c,b,d','--kr,edfc,avcv,ce','f,g,l,e,l,p')
               ,stringsAsFactors=F)

答案,

x1$gg=mapply(function(x,y) length(intersect(strsplit(x,split=',')[[1]],strsplit(y,split=',')[[1]])), x1$m2, x1$m3)