Функции gcd должны быть чем-то, что вы кодировали отдельно, поскольку они не являются частью базы R. Вот надуманный пример, чтобы показать вам, как преобразовать данные в пригодный для использования формат для дальнейшей обработки и построения графиков.*
Во-первых, вам нужно передать summaryRprof()
имя файла для обработки.В вашем примере это будет summaryRprof("RProfOut2.out")
.
. Это вернет сводную статистику для вашего предыдущего кода.Поскольку нам необходимо выполнить дальнейшую обработку этой статистики, давайте присвоим ее новому объекту:
sumStats <- summaryRprof("RProfOut2.out")
Возвращает объект списка с 4 элементами:
> str(sumStats)
List of 4
$ by.self :'data.frame': 2 obs. of 4 variables:
..$ self.time : num [1:2] 1.97 0.25
..$ self.pct : num [1:2] 88.7 11.3
..$ total.time: num [1:2] 1.97 0.25
..$ total.pct : num [1:2] 88.7 11.3
$ by.total :'data.frame': 3 obs. of 4 variables:
..$ total.time: num [1:3] 1.97 0.25 0
..$ total.pct : num [1:3] 88.7 11.3 0
..$ self.time : num [1:3] 1.97 0.25 0
..$ self.pct : num [1:3] 88.7 11.3 0
$ sample.interval: num 1e-04
$ sampling.time : num 2.22
На данный момент, я предполагаю, что вас заинтересует один из первых двух фреймов данных.Я предпочитаю графику в ggplot2
базовой графике, но вы, конечно, можете добиться большинства вещей с базовой графикой ... У меня просто больше опыта с ggplot2
.Вот один из подходов к построению данных для сгенерированного by.self()
фрейма данных:
require(ggplot2)
byself <- sumStats$by.self
byself$functions <- rownames(byself)
m <- melt(byself, id.var = "functions")
qplot(functions, value, data = m, fill = variable, geom = "bar", position = "dodge")
. Таким образом, график выглядит так:это придуманный код, который я составил для примера.Я знаю, не очень креативно, но выполняет свою работу:
Rprof("Rprof.out", interval = 0.0001)
x <- rnorm(10000000)
y <- x ^ 2
Rprof(NULL)
sumStats <- summaryRprof("Rprof.out")