R tem um conceito de +=
(mais iguais) ou ++
(mais mais) como c ++ / c # / outros têm?
r
operators
variable-assignment
increment
SFun28
fonte
fonte
x += 1
oux++
-x = x + 1
funciona.Respostas:
Não, não, consulte: Definição da linguagem R: operadores
fonte
Seguindo @ GregaKešpret, você pode criar um operador de infix:
fonte
x = %+=% y/2
retornax = (x + y)/2
. Adicionar parênteses, ou seja,x = %+=% (y/2)
resolve o problema.R não tem um conceito de
increment operator
(como por exemplo ++ em C). No entanto, não é difícil implementar você mesmo, por exemplo:Nesse caso, você chamaria
No entanto, ele introduz despesas gerais de chamada de função, por isso é mais lento do que digitar
x <- x + 1
você mesmo. Se não me engano,increment operator
foi introduzido para facilitar o trabalho do compilador, pois ele poderia converter o código diretamente nessas instruções de linguagem de máquina.fonte
INC
As instruções foram introduzidas nos processadores principalmente para a implementação de contadores (consulte o Intel Software Developer's Manual). Eu atualizarei a resposta.R não possui essas operações porque (a maioria) dos objetos em R são imutáveis. Eles não mudam. Normalmente, quando parece que você está modificando um objeto, na verdade está modificando uma cópia.
fonte
Incrementar e diminuir em 10.
fonte
Hmisc
da versão 4.1.0.Lançamos um pacote, roperators, para ajudar com esse tipo de coisa. Você pode ler mais sobre isso aqui: https://happylittlescripts.blogspot.com/2018/09/make-your-r-code-nicer-with-roperators.html
fonte
Nós podemos substituir
+
. Se unário+
for usado e seu argumento for uma+
chamada unária , aumente a variável relevante no ambiente de chamada.outras operações não mudam:
Não faça isso, pois você diminuirá tudo. Ou faça-o em outro ambiente e verifique se você não possui grandes loops nessas instruções.
Você também pode fazer isso:
fonte
Existe outra maneira de fazer isso, que eu acho muito fácil, talvez possa ser de alguma ajuda
Eu uso
<<-
para essa situação Os operadores<<-
atribuem o valor ao ambiente paie você pode chamar assim
fonte