【发布时间】:2019-09-19 14:31:46
【问题描述】:
我正在尝试根据与字符串向量的部分匹配来重新排序列表中的元素。因此,如果我有以下列表:
myList = list(BvsAadditionalinfo, AvsAothertext,
BvsBothertext, AvsBothertext, AvsBadditionalinfo,
BvsAothertext, BvsBadditionalinfo, AvsAadditionalinfo)
还有一个像这样的向量:
vsList = c("AvsA", "AvsB", "BvsA", "BvsB")
我可以对我的列表进行排序,最终得到:
myList = list(AvsAothertext, AvsAadditionalinfo,
AvsBothertext, AvsBadditionalinfo, BvsAothertext,
BvsAadditionalinfo, BvsBothertext, BvsBadditionalinfo)
我尝试过使用类似于order 的东西:
TempFileList <- [order(match(myList, vsList))]
但它似乎不起作用,大概是因为匹配不是 100%。如何告诉它接受部分匹配?
我的 vsList 也没有任何附件,所以我可以很容易地使用这样的东西:
abbreviations = c("A", "B")
如果可以的话。
【问题讨论】:
-
vsList的每一项是否总是 4 个字符?如果是这样,您可以执行order(match(lapply(myList,substr,1,4), vsList))之类的操作,但显然如果它可能会更改长度,那将无法正常工作