[R] Beginner problem - using mod function to print odd numbers
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Wed Jun 9 11:55:40 CEST 2021
>>>>> David Carlson on Sun, 6 Jun 2021 15:21:34 -0400 writes:
> There is really no need for a loop:
> num <- 1:100
> num[ifelse(num %% 2 == 1, TRUE, FALSE)]
> [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
> [26] 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
Well, and the above "works" but is really another proof of my
year-long claim that people use ifelse(.) *MUCH MUCH* too often,
and should really learn to use alternatives, in this case,
"R 101" (*long* before fooverse):
Use
num[num %% 2 == 1]
instead of much slower and ...@#^$
num[ifelse(num %% 2 == 1, TRUE, FALSE)]
Martin Maechler
ETH Zurich
> On Sat, Jun 5, 2021 at 2:05 PM William Michels via R-help
> <r-help using r-project.org> wrote:
>>
>> > i <- 1L; span <- 1:100; result <- NA;
>> > for (i in span){
>> + ifelse(i %% 2 != 0, result[i] <- TRUE, result[i] <- FALSE)
>> + }
>> > span[result]
>> [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43
[............]
More information about the R-help
mailing list