0

year変数 1950-2007のデータがありyearますが、他の列に「月」変数があるため、それぞれが 12 回繰り返されます。年ダミー変数を作成するにはどうすればよいですか? これは私が持っているもので、Rはそれを受け入れていません

yeardummy <- cut(research$year, br=c(0, 1950:2007), labels=c("1950:2007"))
4

2 に答える 2

0

これは、データセットの各年に複数のダミー変数を作成するために使用する関数です。

dummyCreator <- function(invec, prefix = NULL) {
     L <- length(invec)
     ColNames <- sort(unique(invec))
     M <- matrix(0L, ncol = length(ColNames), nrow = L,
                 dimnames = list(NULL, ColNames))
     M[cbind(seq_len(L), match(invec, ColNames))] <- 1L
     if (!is.null(prefix)) colnames(M) <- paste(prefix, colnames(M), sep = "_")
     M
} 

#Usage
dummy <- dummyCreator(research$year, prefix = "year")
research <- cbind(research, dummy)

データセットから変数を渡し、必要なプレフィックスを渡すだけで実行され、元のデータセットに cbind するだけで準備完了です。

お役に立てれば。

于 2014-12-01T05:33:17.293 に答える