#r #dataframe #numeric
#r #фрейм данных #числовой
Вопрос:
Как и в iris
наборе данных, в моих данных все столбцы классифицируются как числовые, но весь data.frame не классифицируется как числовой. Следующий код показывает, что я пробовал. Я хочу iris
быть числовым без изменений в форме данных
data("iris")
> is.numeric(iris)
[1] FALSE
iris <- as.numeric(iris)
ERROR: 'list' object cannot be coerced to type 'double'
> iris <- lapply(iris, as.numeric)
> is.numeric(iris)
[1] FALSE
> iris <- as.numeric(unlist(iris))
> is.numeric(iris)
[1] TRUE ##but now it is only one column (instead of 5)
Комментарии:
1. Не совсем понятно, чего вы пытаетесь достичь здесь, но, возможно,
data.matrix(iris)
это то, что вы ищете.2. Столбец Species в iris является фактором. В последней части вы приводите столбец factor к числовому значению, следовательно, это работает.. не очень уверен, что вы пытаетесь здесь сделать
3.
iris
являетсяdata.frame
и, следовательно, никогда неnumeric
. Даже если вы переведете все его столбцы вnumeric
s (но смотрите предостережение StupidWolf), это не создаст самуnumeric
таблицу.4. БОЖЕ! @KonradRudolph, я этого не знал. Как и предложил @nicola, он работает с «data.matrix (iris)« . 😉
Ответ №1:
numeric
это описание типа данных, которое допустимо только для векторов и матриц. Фреймы данных по определению являются списками. Нет причин хотеть, чтобы фрейм данных был числовым, если все столбцы в нем являются числовыми.