我正在使用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)
使用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)