在使用data.frames时,是否存在超出环境函数attach的语言R的作用域环境?

在使用data.frames时,是否存在超出环境函数attach的语言R的作用域环境?,r,expression,scoped,R,Expression,Scoped,我用编程语言R编写了一个较大的脚本,并使用表。我有一个表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.5

我用编程语言R编写了一个较大的脚本,并使用表。我有一个表
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
并且希望在不使用
attach
subset
的情况下缩短某些表达式。而不是写作

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

base.tab.eposR在
功能中具有/
,可以实现这一点

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

您可以将
/
一起使用
base.tab.epos查看package data.table。它允许使用
base.tab.epos,这就是为什么人工要求不使用
subset
,因为
subset
完全符合您的要求:
subset(base.tab,在%c(“LINE”,“RAND”)中键入%)
@Grothendieck subset很好,但它只涵盖了过滤方面。但是,如果您转到图表制作(
绘图、点、线、文本..
),您也有一个长列
表.name$column.name
注释。
base.tab.epos <- base.tab[with(base.tab, TYPE == 'LINE' | TYPE == 'RAND'), ]
library(dplyr)
base.tab.epos <- base.tab %>% filter(TYPE == 'LINE' | TYPE == 'RAND')