除了环境功能附加与 data.frames 一起工作之外,是否有 R 语言的作用域环境?

Is there a scoped environment fot the language R beyond the environment function attach to work with data.frames?

我有一个更大的编程语言 R 脚本并使用 tables。我有一个 table base.tab

  ID      LAT      LON ALT.ORTHO TYPE TYPE.ID
1  1 53.75447 12.51539   46.5555 LINE       1
2 10 53.75452 12.51565   46.5445 LINE       1
3 11 53.75452 12.51567   46.5365 LINE       1
4 12 53.75453 12.51570   46.5715 LINE       1
5 13 53.75453 12.51573   46.5785 LINE       1
6 14 53.75454 12.51576   46.6885 LINE       1

并想在不使用 attachsubset 的情况下缩短某些表达式。而不是写

base.tab.epos <-
     base.tab[(base.tab$TYPE == 'LINE') |
              (base.tab$TYPE == 'RAND'),  ] 

我想在范围上下文中使用一些东西,例如:

with(base.tab) do { 
    base.tab.epos <-
         base.tab[(TYPE == 'LINE') |
                  (TYPE == 'RAND'),  ] 
}

编程语言 R 中是否有表达式可以做到这一点?

R 有 with/within 函数可以实现。

base.tab.epos <- base.tab[with(base.tab, TYPE == 'LINE' | TYPE == 'RAND'), ]

除此之外,您还可以查看 dplyr,这将使您无需每次都使用 data$ 即可引用列名。

library(dplyr)
base.tab.epos <- base.tab %>% filter(TYPE == 'LINE' | TYPE == 'RAND')