Как нормализовать и построить (гистограмму) столбцы таблицы data.table? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть большой список (20 элементов, 4,2 МБ) с именем Buffer_list, который я преобразовал в фрейм данных (теперь Buffer_norm), например так:

#changing the List to a data frame with max for the biggest element
max.length <- max(sapply(Buffer_list, length))
List_norm <- lapply(Buffer_list, function(v) { c(v, rep(NA, max.length-length(v)))})
Buffer_norm <- as.data.frame(List_norm)
names(Buffer_norm) = c(1:20)

Каждый столбец теперьодинаковой длины (57,443 строки) с NA для более коротких списков.

При просмотре data.frame, он показывает мне, что все значения являются числовыми.То же самое, когда я пытаюсь это сделать:

sapply(Buffer_norm, mode)
        1         2         3         4         5         6         7         8         9        10        11        12        13 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
       14        15        16        17        18        19        20 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
> sapply(Buffer_norm, class)
        1         2         3         4         5         6         7         8         9        10        11        12        13 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 
       14        15        16        17        18        19        20 
"numeric" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric" 

В то время как это показывает мне, что значения не являются числовыми, когда

plot(density(Buffer_norm))

Ошибка в density.default (Buffer_norm):Аргумент 'x' должен быть числовым. Я хотел бы построить гистограмму плотности data.frame для каждого самого столбца с осью y от 0 до 1. Необходимо помнить о добавленных NA, преобразующих список в data.frame.!

Я пытался следовать этому: R Нормализовать, затем построить две гистограммы вместе в гистограмме R и ggplot2 с кривой плотности, которая суммируется в 1 , но безуспешно!

1 Ответ

0 голосов
/ 28 ноября 2018

Ваш Buffer_norm является набором данных, вы должны выбрать одну переменную.Пожалуйста, проверьте этот пример с mtcars данными.

str(mtcars)
plot(density(mtcars))
 Error in density.default(mtcars) : argument 'x' must be numeric
plot(density(mtcars[, 1]))

enter image description here

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