是否可以引用其他var transform?
例如:
Data = transform(Data,
m = x,
d = m,
c = m * 2
)
Run Code Online (Sandbox Code Playgroud)
这是一些解决方案.为了重现性,我们将假定以下定义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)