2016-05-01 2 views
0

Я новый пользователь в R, и я только начал работать с ним, чтобы увидеть распределение моих данных, но я застрял на этой ошибке. У меня есть кадр данных, и я хотел бы построить гистограммы его числовых столбцов. Так что я сделал это как ниже:R: графическая гистограмма всех столбцов в data.frame

num_data <-my_data[, sapply(my_data, is.numeric)] 
for (i in 1:length(names(num_data))){ 
    print(i) 
    hist(num_data[i], main='hist', breaks=20, prob=TRUE) 
} 

Но я получаю ошибку 'Ошибка в hist.default (num_data [I], основной = "Hist", брейки = 20, Проб = TRUE): ' х 'должно быть числовым' Я проверил тип num_data [i], и это список числовых значений. Так что я понятия не имею, в чем проблема. Может кто-нибудь, пожалуйста, дайте мне подсказку?

+3

Попробуйте 'num_data [, i]', else 'sapply' в функции' hist' должно работать –

+0

Или эквивалентно 'num_data [[i]]'. num_data [i] дает вам список, а не вектор класса 'numeric' –

ответ

3

A бок о бок ggplot решение.

library(ggplot2) 
library(tidyr) 
ggplot(gather(num_data, cols, value), aes(x = value)) + 
     geom_histogram(binwidth = 20) + facet_grid(.~cols) 
0

Преобразование Dataframe в матрицу. Предположим, что у вас есть файл dataframe сказать MYDATA затем использовать следующую команду: new_data = data.matrix (MYDATA) истор (new_data)

0

Более надежен, чем Hist() является функцией гистограмма из пакета Hmisc:

library(Hmisc) 
hist.data.frame(num_data) 

Это должно печатать гистограммы для всех столбцов в вашей информационной кадре.

Смежные вопросы