我刚开始学习R编程。
请你澄清以下问题。
我有一个包含1列(with some keywords, i.e. data, data1, test, test1)
我有另一个包含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
欣赏你的回答,因为我真的很困惑
答案 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"