R.中的专家R在多列中的确切和部分匹配
我有两个数据框。
数据框之一:
df1 <- c("xx", "bb", "zz")
数据帧二:
df2 <- data.frame(A=c("xx", "be", "zz", "jj"), B=c("xyx, uu, zz", "uu, zbbz, zbz, ccc", "cc, zzx", "ddd"), C=c("bbbb", "yyy", "xxq", "ooo"), D=c("ooo", "yyy", "ccc", "zoz"))
因此,DF2如下:
A B C D
1 xx xyx, uu, zz bbbb ooo
2 be uu, zbbz, zbz, ccc yyy yyy
3 zz cc, zzx xxq ccc
4 jj ddd ooo zoz
我想匹配与Y X得到一个新的数据帧。看着Stackoverflow的答案,我学会了如何做一些精确匹配。在目前的情况下,我想要做精确匹配和部分匹配。在我看来,“grep”可能会有所帮助,但我无法为我的案例工作,请给予帮助。
在df1中,我需要三个词来匹配“xx”,“bb”和“zz”。而不是在df2中搜索确切的xx,bb,zz。我想检查这些条款是否可以在df2的A列和B列中找到,这些列可能包含完全匹配和部分匹配。
例如,我会考虑
XX匹配行1(确切匹配A1)
BB同时匹配行2只(部分 匹配B2)
zz匹配第1行 和第3行(部分匹配B1和 与A3完全匹配,部分匹配 也与B3),
作为ZZ匹配具有两个 两个项目,我想将一个 与完全匹配进行排序先是在最后 数据帧,即第一ROW3, 第1行示出了下一个向上所示。
虽然排4 的DF2不匹配与 表anythings,因此,它不会出现在最终的数据帧 。
最后,我想通过添加相应DF2一个数据帧到DF1如下:
V1 A B C D
1 xx xx xyx, uu, zz bbbb ooo
2 bb be uu, zbbz, zbz, ccc yyy yyy
3 zz zz cc, zzx xxq ccc
4 zz xx xyx, uu, zz bbbb ooo
是grep的或排序在这种情况下使用?请指示更聪明的方式来做到这一点。谢谢。
对于你的问题的第一部分将在数据帧的结果是什么?坐标或匹配的字符串? – 2011-05-30 03:02:55