如何引用数据框表达式中的多个列?

时间:2018-06-18 04:25:59

标签: r dataframe

写这个很笨重:

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

有没有办法(相当于):

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

1 个答案:

答案 0 :(得分:6)

我们可以使用with命令

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

另一种选择是使用attach,但is not recommended

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

@SymbolixAU建议的data.tabledplyr的其他选项

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)