web-dev-qa-db-ja.com

変数列名を持つtibbleのadd_column

このコードは、tibbleに列を追加するためには機能しません。

  library(tidyverse)
  df <- data.frame("Oranges" = 5)
  mycols <- c("Apples", "Bananas", "Oranges")
  add_column(df, mycols[[2]] = 7)

エラーメッセージが表示されます:

  Error: unexpected '=' in "add_column(df, mycols[[2]] ="

しかし、このコードは機能します:

  add_column(df, "Bananas" = 7)

どうして?

'mycols'の値は事前にわかりません。そのため、変数になるようにコードを記述しました。これはdplryでは不可能ですか?

6
Joe

add_columntibbleではなくdplyrから来ているようですが、新しい整頓されたeval構文を使用しています。あなたが使用することができます

add_column(df, !!(mycols[2]) := 7)

!!:=に注意してください。 :=を使用すると、パラメーター名に変数を使用でき、!!を使用すると式が文字列に展開されます。

14
MrFlick