0

一部の機械学習アルゴリズムは因子を処理できないため、データ フレームを通過し、factor変数を新しいダミー変数に展開する関数を作成しています。spread()そのために、クリーニング関数内の関数を使用します。

ただし、拡散する必要がある列の名前を渡そうとすると、エラーがスローされます。

Error: Invalid column specification

コードは次のとおりです。

library(tidyr)
library(dplyr)    
library(C50) # this is one source for the churn data
data(churn)


f <- function(df, name)  {
  df$dummy <- c(1:nrow(df))       # create dummy variable with unique values

  df <- spread(df, key <- as.character(substitute(name)), "dummy", fill = 0 )
}

churnTrain = f(churnTrain, name = "state")
str(churnTrain)

もちろん、それを置き換えるkey = as.character(substitute(name))key = "state"問題なく動作しますが、関数全体が再利用可能性を失います。

エラーなしで列名を内部関数に渡す方法は?

4

2 に答える 2