R изменить все столбцы типового фактора на числовые - PullRequest
20 голосов
/ 22 декабря 2011

У меня есть фрейм данных размером 100 х 100. Есть 30 столбцов, которые являются факторами. Есть ли способ переключить только столбцы факторного типа в числовой тип, не затрагивая другие столбцы (не пройдя маршрут цикла)?

Ответы [ 2 ]

25 голосов
/ 22 декабря 2011

Применение мудрости от Карла Виттофта выше:

asNumeric <- function(x) as.numeric(as.character(x))
factorsNumeric <- function(d) modifyList(d, lapply(d[, sapply(d, is.factor)],   
                                                   asNumeric))

Пример:

d <- data.frame(x=factor(1:3), y=factor(2:4), z=factor(3:5),
                r=c("a", "b", "c"), stringsAsFactors=FALSE)
> f <- factorsNumeric(d)
> class(f$x)
[1] "numeric"
> class(f$r)
[1] "character"
16 голосов
/ 22 декабря 2011

См. R-FAQ 7.10 по адресу cran.r-project.org http://cran.r -project.org / doc / FAQ / R-FAQ.html # How-do-I-convert-factor-to-numeric_003f

ВСЕГДА делайте as.numeric(as.character(some_Factor)) или вы будете сожалеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...