Czy R ma koncepcję +=
(plus równa się) lub ++
(plus plus) tak jak c ++ / c # / others?
r
operators
variable-assignment
increment
SFun28
źródło
źródło
x += 1
lubx++
-x = x + 1
działa.Odpowiedzi:
Nie, nie, zobacz: Definicja języka R: operatory
źródło
Podążając za @ GregaKešpret, możesz utworzyć operator wrostek:
źródło
x = %+=% y/2
zwracax = (x + y)/2
. Dodanie nawiasów, czylix = %+=% (y/2)
rozwiązanie problemu.R nie ma pojęcia
increment operator
(jak na przykład ++ w C). Jednak nie jest to trudne do wykonania samodzielnie, na przykład:W takim razie zadzwonisz
Jednak wprowadza narzut wywołania funkcji, więc jest wolniejszy niż
x <- x + 1
sam wpisywanie . Jeśli się nie mylę,increment operator
został wprowadzony, aby ułatwić pracę kompilatorowi, ponieważ może on bezpośrednio konwertować kod na instrukcje języka maszynowego.źródło
INC
Instrukcja została wprowadzona w procesorach głównie do implementacji liczników (por. Podręcznik programisty Intel). Zaktualizuję odpowiedź.R nie ma tych operacji, ponieważ (większość) obiektów w R jest niezmienna. One się nie zmieniają. Zwykle, gdy wygląda na to, że modyfikujesz obiekt, w rzeczywistości modyfikujesz kopię.
źródło
Zwiększ i zmniejsz o 10.
źródło
Hmisc
w wersji 4.1.0.Wydaliśmy pakiet, operatorzy, aby pomóc w tego rodzaju sprawach. Możesz przeczytać więcej na ten temat tutaj: https://happylittlescripts.blogspot.com/2018/09/make-your-r-code-nicer-with-roperators.html
źródło
Możemy zastąpić
+
. Jeśli+
używane jest jednoargumentowe, a jego argument sam w sobie jest jednoargumentowym+
wywołaniem, zwiększ odpowiednią zmienną w środowisku wywołującym.inne operacje nie zmieniają się:
Nie rób tego jednak, bo wszystko spowolni. Lub zrób to w innym środowisku i upewnij się, że nie masz dużych pętli w tych instrukcjach.
Możesz też po prostu to zrobić:
źródło
Jest inny sposób na zrobienie tego, który uważam za bardzo łatwy i może nie być pomocny
Używam
<<-
w tej sytuacji Operatorzy<<-
przypisują wartość do środowiska nadrzędnegoi możesz to nazwać jak
źródło