Here's how to do it with the plyr package:
require("plyr")
my.data <- "A: 1
B: 2
C: 10
A: 34
B: 20
C: 6.7
A: 2
B: 78
C: 35"
df <- read.delim(textConnection(my.data),header=FALSE,sep=":",strip.white=TRUE)
as.data.frame(dlply(df,.(V1),function(x) x[[2]]))
You get
A B C
1 1 2 10.0
2 34 20 6.7
3 2 78 35.0
You can see what the magic plyr does by playing with dlply(df,.(V1))ordlply(df,.(V1),function(x) x)