library(binom)
DF <- data.frame(success=c(1,2,3,2),total=c(2,4,5,3))
find_bci <- function(x,y) binom.confint(x$success[y],x$total[y],0.95)[5,5]
receiver <- c()
for (i in seq_along(DF[,1])) receiver[i] <- find_bci(DF,i)
#> Warning in stats::prop.test(x[i], n[i]): Chi-squared approximation may be
#> incorrect
#> Warning in stats::prop.test(x[i], n[i]): Chi-squared approximation may be
#> incorrect
#> Warning in stats::prop.test(x[i], n[i]): Chi-squared approximation may be
#> incorrect
#> Warning in stats::prop.test(x[i], n[i]): Chi-squared approximation may be
#> incorrect
receiver
#> [1] 0.01257912 0.06758599 0.14663280 0.09429932

picking the results out by position seems an awkward choice, if you know for example that you want 'exact' method, and you want the lower bounds, why not just use that ?
i.e. rather than