私はコードを単純化する簡単な方法を検討しています。magrittrリバースパイプを使用して非標準評価構文を書く
例
はsqrt
関数は簡単以下の列のサブセットに適用することができます。
require(magrittr)
mtcars[,-which(colnames(mtcars) %in%
c("mpg", "cyl", "drat", "wt", "carb",
"hp", "qsec", "vs", "am", "gear"))] %<>%
sqrt
問題
私はなしサブセットに再び全体のサブセットのシーケンスを入力する必要性を他の変換を適用するに興味があります。
例えばコード:.
を使用して、構文と同じ
Error in function_list[[k]](value) : could not find function ".data"
:
mtcars[,-which(colnames(mtcars) %in%
c("mpg", "cyl", "drat", "wt", "carb",
"hp", "qsec", "vs", "am", "gear"))] %<>%
.data * 1000
はエラーを返します。私の質問は:構文上、sqrt
関数と同じ効果を得ることができますが、渡されたサブセットに長い関数を適用する方法はありますか?
は、\ '* \'(1000) ''で '.dataセクション* 1000 'を置き換えますか?それを関数であり、演算子ではないと呼びますか? – Tensibai
@Tensibai興味深いアプローチですが、どのようにして効率的に多くの操作を行うことができますか?乗算は潜在的な使用法の一例に過ぎません。実際には、私はこのデータのためにいくつかのことをしたいと思います。 – Konrad
互換出力を返すカスタム関数を記述しますか? (ベクトルのためのベクトルなど)、または彼/彼女の答えに展示された@Uweのようなただの無名関数。私は1のために投票するので、関数だけでもテストできます。私は: '%<>%{。 * 10 - 1000} '例えば – Tensibai