是否有可能在`transform`中引用其他var?

muy*_*ueh 1 r

是否可以引用其他var transform

例如:

Data = transform(Data, 
              m = x,
              d = m,
              c = m * 2
)
Run Code Online (Sandbox Code Playgroud)

G. *_*eck 5

这是一些解决方案.为了重现性,我们将假定以下定义Data:

Data <- data.frame(x = 1)
Run Code Online (Sandbox Code Playgroud)

1)迭代变换尝试迭代变换:

transform(transform(Data, m = x), d = m, c = m*2)
Run Code Online (Sandbox Code Playgroud)

2)内或使用within:

within(Data, { m <- x; d <- m; c <- m*2 })
Run Code Online (Sandbox Code Playgroud)

3)my.transform这里还定义一个支持这种行为的替代变换.

my.transform(Data, m = x, d = m, c = m*2)
Run Code Online (Sandbox Code Playgroud)

请注意,这是此处唯一支持按顺序设置变量的答案,例如

my.transform(Data, d = m, c = m*2, m = x)
Run Code Online (Sandbox Code Playgroud)

4)dplyr mutate包中的dplyr :: mutate也支持这个:

library(dplyr)
mutate(Data, m = x, d = m, c = m*2)
Run Code Online (Sandbox Code Playgroud)