optim関数は関係ない
V1、V2にデータフレームが入っているからエラーが出る、たぶん

(参考) irisを例にstr()で構造を確認してみれば、これらで構造が違うことが解る
str(iris[1])
str(iris[,1])