r语言 - 如何在数据帧表达式中引用多个列?



写这个很笨拙:

df$a <- df$b + df$c

有没有办法(相当于(:

with df:
$a <- $b + $c

我们可以使用with命令

df$a <- with(df, b + c)

另一种选择是使用attach,但不建议这样做

attach(df)
df$a <- b + c

data.tabledplyr的另一个选项

,如@SymbolixAU
library(data.table)
setDT(df)[, a := b + c]

如果您更喜欢dplyr链。

library(data.table)
library(dplyr)
df %>%
mutate(a:= b + c)

magrittr包中还有正向管道运算符(%<>%(,它不需要您再次将对象分配给变量。

library(magrittr)
df %<>%
mutate(a = b + c)

另一个类似于with的是使用transform(由@Maurits Evers建议(

df <- transform(df, a = b + c)

最新更新