我有一个包含文本字符串的矢量的数据框。我试图根据每个字符串是否包含在几个列表之一中,并将这些字符串分配给数据帧中的新矢量,将这些字符串重新编码为值(0,1,2,...)。例如, :R - 根据匹配到多个列表中的一个匹配矢量值
vector = c("A", "B", "C", "D", "E")
list1 = c("B", "G", "P", "Z")
list2 = c("A", "E", "M", "Q")
list3 = everything not in list1 or list2
新载体应分配 “0”, “1”,或 “2”,根据是否向量[i]是包含在列表1或列表2,或项目list3:
new_vector = (2, 1, 3, 3, 2)
我尝试过%的%的各种排列,但问题是“矢量”是非常长(数十万个元素),并且我所匹配的一些列表也相当长(10-30个元素)。我有这个工作的声明,但是极端慢。看着苔藓生长缓慢。
什么是R“窍门”,用于优化加速这样的复杂匹配场景?
OMG,这方面的成效斐然!谢谢,弗兰克 - 你真的救了我的皮! 这绝对是我放入个人图书馆的一招。 – TPL