#r
#r
Вопрос:
У меня есть входные данные с очень большим количеством наблюдений в день. Я могу сделать barplot
то, что хочу, за 1 день, используя table()
.
Если я пытаюсь загрузить более 1 дня и вызываю table()
, у меня заканчивается память.
Я пытаюсь использовать table() каждый день и объединять таблицы в итоговые значения, которые я смогу barplot
позже. Но я просто не могу понять, как использовать уже table
общие данные и столбчатую диаграмму каждый день в виде сложенного столбца.
После зацикливания и консолидации я получаю что-то вроде этого: 2 дня наблюдений. ( Freq
столбец используется по умолчанию для предыдущих table()
вызовов)
Каков наилучший способ создания столбчатой диаграммы с накоплением, когда мои данные заканчиваются таким образом?
> data.frame(CLIENT=c("Mr Fluffy","Peppa Pig","Mr Fluffy","Dr Who"), Freq=c(18414000,9000000,7000000,15000000), DAY=c("2011-11-03","2011-11-03","2011-11-04","2011-11-04"))
CLIENT Freq DAY
1 Mr Fluffy 18414000 2011-11-03
2 Peppa Pig 9000000 2011-11-03
3 Mr Fluffy 7000000 2011-11-04
4 Dr Who 15000000 2011-11-04
>
> # What should I put here?
Ответ №1:
Я предполагаю, что вы используете базовую графику, поскольку вы упомянули barplot
. Вот подход, использующий это:
wide <- reshape(dat, idvar="CLIENT", timevar="DAY", direction="wide")
barplot(as.matrix(wide[-1]), beside=FALSE)
В качестве альтернативы, используя ggplot2
:
library("ggplot2")
ggplot(dat, aes(x=DAY, y=Freq))
geom_bar(aes(fill=CLIENT), position="stack")
Комментарии:
1. Спасибо, Брайан, за ваш ответ. Существует небольшая проблема с выводом гистограммы, заключающаяся в том, что
NA
значения, генерируемые путемreshape
, портят конечноеbarplot
представление. Я исправил это, вставив0
вместо этого. напримерwide[is.na(wide)] <- 0
. КСТАТИ, я искал гистограмму (хотя спасибо за ggplot2), потому что я обнаружил, что у ggplot2 заканчивается память на некоторых разных графиках одних и тех же данных: (
Ответ №2:
Попробуйте ggplot2:
ggplot(df,aes(DAY,fill=CLIENT,weight=Freq)) geom_bar()
Бесстыдно вырвано отсюда:
Комментарии:
1. ggplot2 не хватает памяти для моего большого набора данных (наносекундные выборки)