首页 > 解决方案 > 如何引用数据框表达式中的多个列?

问题描述

写这个很笨拙:

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

有没有办法(相当于):

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

标签: rdataframe

解决方案


我们可以使用with命令

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

另一种选择是 using attach,但不推荐使用

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)

推荐阅读