My solution isn't particularly elegant, but I was partly successful with solution, i.e. in the case no data is missing (blank cells) except for those already accounted for. However, it needs a little extra effort to work out the details:
data$index = c(1:dim(data)[1])
head(data)
data$missing = c(rep(1, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc370)])
data$missing[is.na(data$Conc370)] = c(rep(0, Length))
data$Conc370.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc470)])
data$missing[is.na(data$Conc470)] = c(rep(0, Length))
data$Conc470.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc520)])
data$missing[is.na(data$Conc520)] = c(rep(0, Length))
data$Conc520.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc590)])
data$missing[is.na(data$Conc590)] = c(rep(0, Length))
data$Conc590.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc660)])
data$missing[is.na(data$Conc660)] = c(rep(0, Length))
data$Conc660.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc880)])
data$missing[is.na(data$Conc880)] = c(rep(0, Length))
data$Conc880.mean = c(rep(NA, dim(data)[1]))
Length = length(data$missing[is.na(data$Conc950)])
data$missing[is.na(data$Conc950)] = c(rep(0, Length))
data$Conc950.mean = c(rep(NA, dim(data)[1]))
i = 0
number = 0
repeat{
  i = i + 1
  if (data$missing[i] == 0){
    repeat{
      number = number + 1
      if ((number == 1) & (i > 3)){   # if you are on the first missing row
        data$Conc370.mean[i-1] = mean(c(data$Conc370[i-1], data$Conc370[i-2]))
        data$Conc470.mean[i-1] = mean(c(data$Conc470[i-1], data$Conc470[i-2]))
        data$Conc520.mean[i-1] = mean(c(data$Conc520[i-1], data$Conc520[i-2]))
        data$Conc590.mean[i-1] = mean(c(data$Conc590[i-1], data$Conc590[i-2]))
        data$Conc660.mean[i-1] = mean(c(data$Conc660[i-1], data$Conc660[i-2]))
        data$Conc880.mean[i-1] = mean(c(data$Conc880[i-1], data$Conc880[i-2]))
        data$Conc950.mean[i-1] = mean(c(data$Conc950[i-1], data$Conc950[i-2]))
      }
      if (data$missing[i + number] == 1){
        data$Conc370.mean[i + number] = mean(c(data$Conc370[i + number], data$Conc370[i + number + 1]))
        data$Conc470.mean[i + number] = mean(c(data$Conc470[i + number], data$Conc470[i + number + 1]))
        data$Conc520.mean[i + number] = mean(c(data$Conc520[i + number], data$Conc520[i + number + 1]))
        data$Conc590.mean[i + number] = mean(c(data$Conc590[i + number], data$Conc590[i + number + 1]))
        data$Conc660.mean[i + number] = mean(c(data$Conc660[i + number], data$Conc660[i + number + 1]))
        data$Conc880.mean[i + number] = mean(c(data$Conc880[i + number], data$Conc880[i + number + 1]))
        data$Conc950.mean[i + number] = mean(c(data$Conc950[i + number], data$Conc950[i + number + 1]))
        i = i + number - 1
        number = 0
        break
      }
    }
  }
  if (i >= dim(data)[1]){
    break
    }
}