代码之家  ›  专栏  ›  技术社区  ›  Reinderien

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

  •  4
  • Reinderien  · 技术社区  · 8 年前

    写这个很笨拙:

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

    有办法吗(相当于):

    with df:
        $a <- $b + $c
    
    1 回复  |  直到 8 年前
        1
  •  6
  •   Ronak Shah    8 年前

    我们可以使用 with 命令

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

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

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

    另一个选项 data.table dplyr 由@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)
    

    另一个类似于 具有 正在使用 transform (由@maurits evers建议)

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