Diferença entre <- e << - [duplicado]

Esta pergunta já tem uma resposta aqui:

Como você usa "<< -" (atribuição de escopo) em R? 6 respostas

CASO 1:

rm(list = ls())
foo <- function(x = 6){
  set <- function(){
  x <- x*x}
  set()
x}
foo()
# [1] 6

CASO 2:

rm(list = ls())
foo <- function(x = 6){
set <- function(){
  x <<- x*x}
  set()
  x}
foo()
# [1] 36

Eu li que<<- O operador pode ser usado para atribuir um valor a um objeto em um ambiente diferente do ambiente atual. Diz que a inicialização do objeto usando<<- pode ser feito para os objetos que não estão no ambiente atual. Quero perguntar qual objeto do ambiente pode ser inicializado usando<<- . No meu caso, o ambiente é ambiente defoo função, pode<<-inicializar os objetos fora da função ou o objeto no ambiente atual? Totalmente confuso quando usar<- e quando usar<<-.

questionAnswers(2)

yourAnswerToTheQuestion