如何从'with`"回归环境"

Ada*_*amO 1 r

我正在使用R来清理数据.我有一个包含1,000列的数据集,所有这些都有一些修改.我发现$运算符使我的代码不可读.我喜欢使用with命令执行数据步骤,以便数据框的所有元素都是本地范围的(原谅我几乎完全忽略了计算机科学).但是,在完成所有操作之后,我想返回我在with步骤中编写的所有变量,并可能覆盖我之前提取的任何变量.我注意到该ls()命令只查看with步骤中定义的变量,但是如何将它们连接到数据帧?

作为期望输出的示例:

set.seed(123)
myDat <- data.frame('x'=rnorm(3))
y <- with(myDat, {
  xgt0 <- x > 0
  x2 <- x^2
  foo()
})

print(y)
          x1  xgt0         x2
1 -0.5604756 FALSE 0.31413295
2 -0.2301775 FALSE 0.05298168
3  1.5587083  TRUE 2.42957161
Run Code Online (Sandbox Code Playgroud)

G. *_*eck 6

使用within这样:

set.seed(123)
myDat <- data.frame('x'=rnorm(3))

within(myDat, {
  xgt0 <- x > 0
  x2 <- x^2
})
Run Code Online (Sandbox Code Playgroud)

赠送:

           x         x2  xgt0
1 -0.5604756 0.31413295 FALSE
2 -0.2301775 0.05298168 FALSE
3  1.5587083 2.42957161  TRUE
Run Code Online (Sandbox Code Playgroud)