Como a atravessar as fronteiras em r

Video: ATRAVESSANDO A FRONTEIRA DO EUA DE CARRO | VIAGEM | Romulo e Mirella | T3. Ep.1

Ao trabalhar com funções em R, às vezes, você trabalha com alguns objetos que você não criem em primeiro lugar na área de trabalho. Você usa os argumentos X, mult, e DIVERSÃO como se fossem objetos, e você criar um objeto por cento dentro da função que você não pode encontrar de volta no espaço de trabalho depois de usar a função. Então o que está acontecendo?

Criar um caso de teste

Vamos descobrir através de um pequeno exemplo. Primeiro, crie um objeto X e uma pequena teste() funcionar como este:

X lt; - 1: 5test lt; - função (x) {gato ("Este é x:", X, "n") Rm (x) gato ("Este é x, depois de removê-lo:", X,"n")}

o teste() função não fazer muito. Leva um argumento X, imprime-lo para o console, remove-lo, e tenta imprimi-lo novamente. Você pode pensar que esta função irá falhar, porque X desaparece após a linha RM (x). Mas não, se você tentar esta função ele funciona muito bem, como mostrado no exemplo a seguir:

gt; teste (5: 1) Trata-se de x: 5 4 3 2 1 Esta é x após a sua remoção: 1 2 3 4 5


Mesmo após a remoção X, R ainda pode encontrar outra X que pode imprimir. Se você olhar um pouco mais de perto, você verá que o X impresso na segunda linha não é realmente o que você deu como um argumento, mas o X você criou antes no espaço de trabalho. Por quê?

Procurar o caminho

Se você usar uma função, a função cria pela primeira vez um temporária ambiente local. Este ambiente local é aninhados dentro do ambiente global, o que significa que, a partir desse ambiente local, você também pode acessar qualquer objeto do ambiente global. Assim que a função termina, o ambiente local é destruída juntamente com todos os objetos nele.

Para ser completamente correto, a função sempre cria um ambiente dentro do ambiente é chamado de, chamado de ambiente pai. Se você chamar uma função a partir do espaço de trabalho através de um script ou usando a linha de comando, este ambiente pai passa a ser o meio ambiente global.

Se R vê qualquer nome do objeto mencionado em nenhum código na função, ele primeiro procura o meio ambiente local. Porque ele encontra um objeto X lá, ele usa esse para o primeiro gato() declaração. Na linha seguinte, R remove esse objecto X. Assim, quando R alcança a terceira linha, não pode encontrar um objeto X no ambiente local mais. Sem problemas. R move para cima a pilha de ambientes e verificações para ver se encontra alguma coisa parecendo um X no ambiente global. Porque ele pode encontrar um X lá, ele usa que um no segundo gato() declaração.

Video: Tutorial GTA 3:Como passar para outra cidade sem fazer missao ( SEM CHEAT )

Se você usar RM () dentro de uma função, RM () irá, por padrão, excluir apenas os objetos dentro dessa função. Dessa forma, você pode evitar a falta de memória quando você escrever funções que têm de trabalhar em grandes conjuntos de dados. Você pode remover imediatamente grandes objetos temporários em vez de esperar para a função de fazê-lo no final.


Publicações relacionadas