写这个很笨重:
df$a <- df$b + df$c
有没有办法(相当于):
with df:
$a <- $b + $c
答案 0 :(得分:6)
我们可以使用with
命令
df$a <- with(df, b + c)
另一种选择是使用attach
,但is not recommended
attach(df)
df$a <- b + c
@SymbolixAU建议的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)