如何使用assign来更改R中数据框内的变量?

Hen*_*rik 1 environment r variable-assignment dataframe

我试着这样做:

x <- data.frame(1:20)  
attach(x)  
assign("x2",1:20,pos="x")  
Run Code Online (Sandbox Code Playgroud)

但是,x$x2给我NULL.
随着x2我得到我想要的,但它不是data.frame的一部分.

附加x2x手动将在这个简单的情况下工作,但不是在我需要的更复杂的情况下.我尝试assign在循环中循环assign调用中使用的varnames .

Cha*_*les 5

尝试在内部使用:

x <- data.frame(x=1:20)
x <- within(x, {
  x2 <- x^2
  assign('x3', x2 * 2)
  # ... other assignments
})
Run Code Online (Sandbox Code Playgroud)

它使用起来更干净$,[[但也可以使列顺序正确:

x <- data.frame(x=1:20)
x$x2 <- x$x^2
x[['x3']] <- x$x2 * 2
Run Code Online (Sandbox Code Playgroud)