Rの関数化についての質問です。

関数の中身のfor文だけ実行すると破壊的になりうまくいきますが、、関数として実行すると非破壊的になって更新されていないようです。
グローバル変数が原因かと想像しているのですが、<<-を使ってもうまく行かず、という感じです。

func <- function(x1,df){
  for(i in 1:nrow(df)){
    df[i,x1+1] <- min(df[i,1:x1]) 
     }
}

よろしくお願いいたします。