Kukla değişkenleri bir faktöre geri döndürmek için verimli bir yol (temel olmayan paketler dahil herhangi bir çözüm) nedir? Verimli Daralt Kukla Değişkenler
race.White race.Hispanic race.Black race.Asian
1 1 0 0 0
2 0 0 0 1
3 1 0 0 0
4 0 0 1 0
5 0 0 0 1
6 0 1 0 0
7 1 0 0 0
8 1 0 0 0
9 1 0 0 0
10 0 0 1 0
İstenilen çıktı:
race
1 White
2 Asian
3 White
4 Black
5 Asian
6 Hispanic
7 White
8 White
9 White
10 Black
veri:
dat <- structure(list(race.White = c(1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L,
1L, 0L), race.Hispanic = c(0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L), race.Black = c(0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L),
race.Asian = c(0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L)), .Names = c("race.White",
"race.Hispanic", "race.Black", "race.Asian"), row.names = c(NA,
-10L), class = "data.frame")
Denedim Ne:
Bu olası çözüm ama daha iyi bir indeksleme/dplyr var eminim/data.table/.etc çözümü.
apply(dat, 1, function(x) sub("[^.]+\\.", "", colnames(dat))[x])