写这个很笨拙:
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.table
和dplyr
的另一个选项
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)