У меня есть большой список (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 , но безуспешно!