我正在尝试做一个简单的任务,从列表中提取某些元素,但是问题是某些元素名称具有相同的字母,但数字不同。除了要输入所有可能的组合之外,我还想要一种使用通配符来表示任何数字的方法。
所以这是我要从中获取元素的列表的一部分:
frame@description= $`$TOT`
[1] "100000"
$`$BEGINSTEXT`
[1] "0"
$`$ENDSTEXT`
[1] "0"
$`$NEXTDATA`
[1] "0"
$`$BEGINANALYSIS`
[1] "0"
$`$ENDANALYSIS`
[1] "0"
$`$BEGINDATA`
[1] "3851"
$`$ENDDATA`
[1] "24003850"
$`$P1N`
[1] "Time"
$`$P1B`
[1] "32"
$`$P1E`
[1] "0,0"
$`$P1R`
[1] "524288"
$`$P2N`
[1] "Event-length"
$`$P2B`
[1] "32"
$`$P2E`
[1] "0,0"
$`$P2R`
[1] "4096"
$`$P3N`
[1] "Y89Di"
$`$P3S`
[1] "89Y"
$`$P3B`
[1] "32"
这是我要提取的元素的向量:
requiredKeys = c("$BEGINANALYSIS","$BEGINDATA","$BEGINSTEXT","$BYTEORD","$DATATYPE","$ENDANALYSIS","$ENDDATA","$ENDSTEXT","$MODE","$NEXTDATA","$PAR","$P*B","$P*E","$P*N","$P*R","$TOT")
如您所见,列表中有$P1N
,$P2N
,$P3N
等,我想用$P1*N
或{{1 }}在VECTOR中,但是如果我只是这样输入的话,它是行不通的。
如果我输入$P[0-9]N
,我将得到所有想要的元素,但具有通配符的元素除外。
我想知道是否有一种简单的方法可以完成设置,或者是否必须使用grep,grepl或类似的方法。
非常感谢您的帮助。谢谢。