另一个问题的答案解释了如何匹配不包含单词的字符串。
问题(对我来说)是给出的解决方案在 R 中不起作用。
我经常从现有向量创建一个data.frame()
并想清理我的工作区。例如,如果我的工作区包含:
> ls()
[1] "A" "B" "dat" "V"
>
我只想保留dat
,我必须清理它:
> rm(list=ls(pattern="A"))
> rm(list=ls(pattern="B"))
> rm(list=ls(pattern="V"))
> ls()
[1] "dat"
>
(其中A
、B
、 和V
只是大量复杂名称的示例,my.first.vector
不容易与 匹配rm(list=ls(pattern="[ABV]"))
)。
(对我来说)告诉rm()
删除除 之外的所有内容是最方便的dat
,但问题是链接的问答中给出的解决方案不起作用:
> rm(list=ls(pattern="^((?!dat).)*$"))
Error in grep(pattern, all.names, value = TRUE) :
invalid regular expression '^((?!dat).)*$', reason 'Invalid regexp'
>
那么我如何匹配除dat
R 之外的所有内容?