They are the same thing, minus the corner case of assignment within a function call:
e.g.
divide = function(x, y) {
return(x/y)
}
divide(y = 2, x = 1)
divide(y <- 1, x <- 2)
These two calls give the same result, as the second results in assignment and then passing the argument by position. Other than this case, they are exactly interchangeable.
There's a good explanation here: https://stackoverflow.com/questions/1741820/what-are-the-dif...