The following achieves what you want, I believe:
lad <- function(y, x, data) {
dat <- setNames(read.csv(data)[, c(x, y)], c('x', 'y'))
sum.abs.dev <- function(beta, data) {
with(data, sum(abs(y - beta[1] - beta[2] * x)))
}
fit <- lm(y ~ x, dat)
optim(par=coef(fit), sum.abs.dev, data=dat)$par
}
lad(y = "farm", x = "land", data="FarmLandArea.csv")
# (Intercept) x
# -605.2293682 0.3642028