によって指定されたmutate_を使用してデータフレームに新しい列を追加します。これは私に次のエラーを与える:は、列名が、私は列が変数名で定義され、私はに列を追加することをデータフレームを、持っている変数
Error: attempt to use zero-length variable name
私が見てきたmutate_の例の多くを列名を変更するために使用されているが、動的に列を作成していません。どんな助け?
によって指定されたmutate_を使用してデータフレームに新しい列を追加します。これは私に次のエラーを与える:は、列名が、私は列が変数名で定義され、私はに列を追加することをデータフレームを、持っている変数
Error: attempt to use zero-length variable name
私が見てきたmutate_の例の多くを列名を変更するために使用されているが、動的に列を作成していません。どんな助け?
ステートメントの評価が行われているときに問題があります。私の理解では、mutate_
という目標はを使用してmutate(SomeName = "")
を作成するなど、mutate
の構文を再作成することではありません。代わりに、関数の生成を許可することです。あなたのアプローチが失敗した理由は、それが""
という名前の関数を探しているという事実です。
代わりに、評価できる関数を渡す必要があります(ここでは、プレースホルダーとしてpaste
を使用しています)、変数を使用してその列の名前を設定します。これは動作するはずです:
df <- df %>% mutate_(.dots = setNames("paste(cut, color)",NewName))
が与える:
carat cut color clarity depth table price x y z SomeName
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <chr>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 Ideal E
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31 Premium E
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31 Good E
4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63 Premium I
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75 Good J
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48 Very Good J
7 0.24 Very Good I VVS1 62.3 57 336 3.95 3.98 2.47 Very Good I
8 0.26 Very Good H SI1 61.9 55 337 4.07 4.11 2.53 Very Good H
9 0.22 Fair E VS2 65.1 61 337 3.87 3.78 2.49 Fair E
10 0.23 Very Good H VS1 59.4 61 338 4.00 4.05 2.39 Very Good H
(注目すべきは、私も持っ
df <- diamonds
NewName <- "SomeName"
df <- df %>% mutate_(.dots = setNames("paste('')",NewName))
これは、例えば、あなたがcut
とcolor
を貼り付けることができ、より多くの制御を可能とします最初の構文が最初に動作し、それに続く失敗が続く。
Iエラーはありません。 'SomeName =" "' – Haboryme
という名前の列だけがすべての行を選択して再度実行します。これはテンポラルなようです。 – pluke
実際、2回目は機能しません。 – Haboryme