Graphing Mean PK profile [R for BE/BA]

posted by Shuanghe  – Spain, 2019-04-23 18:31  – Posting: # 20213
Views: 4,081

Dear roman_max,

» Can anyone share idea (R-code?) how to do it? How a data-set can be organized for this graph?

Assuming that your data file of individual concentration dat_ind contain at least the following variables: subj, treat, time, conc, you can get mean profile data with
library(dplyr)
dat_mean <- dat_ind %>%
  group_by(treat, time) %>%
  summarise(conc = mean(conc))


Obviously, time here should be the planned nominal time, not the actual sampling time. With ggplot you can have more or less what you asked for:

library(ggplot2)
p1 <- ggplot(data = dat_ind, aes(x = time, y = conc, color = treat)) +
  geom_point(aes(group = interaction(treat, time)), alpha = 0.5, shape = 1,
             position = position_jitter(width = 0.1, height = 0)) +
  geom_boxplot(aes(fill = treat, group = interaction(treat, time)), alpha = 0.3) +
  geom_line(data = dat_mean, size = 1.3)


The main idea is the group = interaction(treat, time). Feel free to modify the rest to better suit your needs (size/shape of the points etc). position_jitter() helps to avoid point overlapping (you have to specify height = 0 otherwise the data points will not reflect the true concentration value since some randomness will be introduced along y-axis by default) and the last line will add mean profiles with slightly bold lines.

All the best,
Shuanghe

Complete thread:

Activity
 Admin contact
20,346 posts in 4,274 threads, 1,402 registered users;
online 13 (1 registered, 12 guests [including 5 identified bots]).
Forum time (Europe/Vienna): 12:50 CET

The internet gave us all the power of speech,
and what did we discover?
That victory goes to he who shouts the loudest,
and that reason does not sell.    Claire North

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5