情報が多すぎる答え:各オプションの「脱糖」を見ると、次のようになります。
# 1.
`[<-`(x, 1, value=`colnames<-`(x[1], 'Name'))
# 2.
`colnames<-`(x, `[<-`(colnames(x), 1, 'Name'))
最初のオプションは、最初の列から新しいdata.frameを作成し、その列の名前を(正常に)変更してから、そのdata.frameを最初の列に割り当て直そうとします。[<-.data.frame
値を伝播しますが、の名前に基づいて既存の列の名前を変更しませんvalue
。
2番目のオプションは、data.frameのcolnamesを取得し、最初の値を更新し、更新された名前で新しいdata.frameを作成します。
(コメントでバックティッククォートを機能させる方法がわからないため、ここで@Peng Pengの質問に答えてください...)
バックティックは、変数名を引用することです。ここで違いを考慮してください:
x<-1
`x<-`<-1
1つ目はxという変数に1を割り当てますが、2つ目は。という変数に割り当てますx<-
。これらの異常な変数名は、実際には<-
プリミティブ関数によって使用されます。割り当てのlhsで任意の関数呼び出しが許可<-
され、名前に追加された関数は、更新の実行方法を指定します(setf
lispと同様)。