library(reshape2)
library(dplyr)

df = read.csv('in.csv')
print(df)
##   Time Conc.  X1   X2  X3
## 1    0   100  56   55  50
## 2    0    50  24   27  28
## 3    1   100 112  165 100
## 4    1    50  24   54  28
## 5    2   100 336  495 300
## 6    2    50  24  108  28
## 7    3   100 672 1485 900
## 8    3    50  48  216  56
melted = melt(df, c('Time', 'Conc.'))
print(melted)
##    Time Conc. variable value
## 1     0   100       X1    56
## 2     0    50       X1    24
## 3     1   100       X1   112
## 4     1    50       X1    24
## 5     2   100       X1   336
## 6     2    50       X1    24
## 7     3   100       X1   672
## 8     3    50       X1    48
## 9     0   100       X2    55
## 10    0    50       X2    27
## 11    1   100       X2   165
## 12    1    50       X2    54
## 13    2   100       X2   495
## 14    2    50       X2   108
## 15    3   100       X2  1485
## 16    3    50       X2   216
## 17    0   100       X3    50
## 18    0    50       X3    28
## 19    1   100       X3   100
## 20    1    50       X3    28
## 21    2   100       X3   300
## 22    2    50       X3    28
## 23    3   100       X3   900
## 24    3    50       X3    56
summarized = melted %>% group_by('Time', 'Conc.') %>% summarize(mean=mean(value), sd=sd(value))
print(summarized)
## Source: local data frame [8 x 4]
## Groups: Time
## 
##   Time Conc.    mean      sd
## 1    0    50   26.33   2.082
## 2    0   100   53.67   3.215
## 3    1    50   35.33  16.289
## 4    1   100  125.67  34.588
## 5    2    50   53.33  47.385
## 6    2   100  377.00 103.764
## 7    3    50  106.67  94.770
## 8    3   100 1019.00 419.360