R编程 - 模式匹配(仅限确切的单词)

时间:2016-08-12 14:29:54

标签: regex r matching

我刚开始学习R编程。

请你澄清以下问题。

我有一个包含1列(with some keywords, i.e. data, data1, test, test1)

的文件(XLS)

我有另一个包含2列

的文件(XLS)
(Column 1 : ID1, ID2, ID3, ID4
Column 2 : data, data_analyst, test, test_analyst) 

现在,我如何使用模式匹配来获取具有匹配模式的所有ID的输出并显示模式名称

例如。我的输出应该如下:

ID1 : pattern matching (data) 
ID2 : pattern not matching 
ID3 : pattern matching (test)
ID4 : pattern not matching

欣赏你的回答,因为我真的很困惑

1 个答案:

答案 0 :(得分:0)

第一步是将XLS文件导入R.这会将它们作为数据框导入,但可能没有您期望的列名。因此,您还应将名称设置为您认可的名称。

file1 = read.xls("file1", header=TRUE)
file2 = read.xls("file2", header=TRUE)
names(file1) = c("DATA")
names(file2) = c("ID","DATA")

然后,您将基于DATA进行合并。

matched = merge(file1, file2, by="DATA")

此时“匹配”包括匹配的所有行。因此,您需要使用匹配函数来查找“匹配”中哪些与“file1”中的匹配。

a = match(file2$ID,matched$ID)
final = file2
names(final) = c("ID","MATCH")
final[which(is.na(a))],"DATA"] = "pattern does not match"
final[-which(is.na(a))],"DATA"] = "pattern matches"