Another option:
library(data.table)
l <- sapply(unique(df$Pt), function(x) data.frame(rbind(c(x,df[df$Pt==x,]$EVENT))))
rbindlist(l, fill = T)
# X1 X2 X3 X4
# 1: 123 GGG Nor tre
# 2: 144 GGG NA NA
# 3: 1667 tre Nor tre
DATA
df <- structure(list(Pt = c(123L, 123L, 123L, 144L, 1667L, 1667L, 1667L
), EVENT = c("GGG", "Nor", "tre", "GGG", "tre", "Nor", "tre")), .Names = c("Pt",
"EVENT"), row.names = c(NA, -7L), class = "data.frame")