quickr semantics: types, shapes, and differences from R1 hours ago
What to expect | Types | Reassignment cannot narrow a type | Shapes | Matrix multiplication and linear algebra | Differences from R | Integer and logical prod() results retain their type | Integer sum() can overflow | Floating sum() can differ by platform | Integer arithmetic can overflow | Zero divisors in %% and %/% | Floating %/% can differ at quotient boundaries | Empty min() and max() inputs are rejected | Whole-valued real exponents can differ for negative bases | No NA | No partial recycling | Zero-length operands do not recycle to zero-length results | Zero-sized linear-algebra products | drop() requires a fixed result rank | A variable's type cannot change | Empty sapply() results | Complex values are elementwise-only | solve() uses LAPACK's singularity result | runif() bound differences | Return allocation and observable effects | Scalar transpose | Length-one diag() arguments | Subscript bounds are only partially checked | Parallel loops require independent iterations | Local variables and closures | ifelse() | Logical operators require logical operands | Local closures accept only pure argument expressions | Deprecation warnings are not reproduced