Apakah R memiliki konsep +=
(plus sama dengan) atau ++
(plus plus) seperti yang dilakukan c ++ / c # / others?
r
operators
variable-assignment
increment
SFun28
sumber
sumber
x += 1
ataux++
-x = x + 1
bekerja.Jawaban:
Tidak, tidak, lihat: R Definisi Bahasa: Operator
sumber
Mengikuti @ GregaKešpret Anda dapat membuat operator infiks:
sumber
x = %+=% y/2
kembalix = (x + y)/2
. Menambahkan tanda kurung, yaitux = %+=% (y/2)
memecahkan masalah.R tidak memiliki konsep
increment operator
(seperti misalnya ++ dalam C). Namun, tidak sulit untuk menerapkannya sendiri, misalnya:Dalam hal ini Anda akan menelepon
Namun, ini memperkenalkan fungsi panggilan overhead, jadi lebih lambat daripada mengetik
x <- x + 1
sendiri. Jika saya tidak salahincrement operator
diperkenalkan untuk membuat pekerjaan untuk kompiler lebih mudah, karena dapat mengubah kode ke instruksi bahasa mesin secara langsung.sumber
INC
instruksi diperkenalkan pada prosesor terutama untuk mengimplementasikan penghitung (lih. Manual Pengembang Perangkat Lunak Intel). Saya akan memperbarui jawabannya.R tidak memiliki operasi ini karena (sebagian besar) objek di R tidak dapat diubah. Mereka tidak berubah. Biasanya, saat Anda memodifikasi objek, Anda sebenarnya memodifikasi salinan.
sumber
Kenaikan dan penurunan sebesar 10.
sumber
Hmisc
versi 4.1.0.Kami merilis paket, roperator, untuk membantu hal semacam ini. Anda dapat membaca lebih lanjut di sini: https://happylittlescripts.blogspot.com/2018/09/make-your-r-code-nicer-with-roperators.html
sumber
Kita bisa mengesampingkan
+
. Jika unary+
digunakan dan argumennya sendiri merupakan+
panggilan unary , maka tambahkan variabel yang relevan di lingkungan panggilan.operasi lain tidak berubah:
Jangan lakukan itu karena Anda akan memperlambat segalanya. Atau lakukan di lingkungan lain dan pastikan Anda tidak memiliki loop besar pada instruksi ini.
Anda juga bisa melakukan ini:
sumber
Ada cara lain untuk melakukan ini, yang menurut saya sangat mudah, mungkin bisa membantu
Saya gunakan
<<-
untuk situasi ini. Operator<<-
memberikan nilai ke lingkungan indukdan Anda bisa menyebutnya seperti
sumber