1
2
3### Function declarations
4
5## 1
6{
7    fun <- function(argument1,
8                    argument2) {
9        body
10    }
11}
12
13## 2
14{
15    function(
16             argument1,
17             argument2
18             )
19    {
20        body
21    }
22}
23
24## 3
25function(argument_fun(sub_argument1,
26                      sub_argument2),
27         argument) {}
28
29## 4
30function(argument1, parameter = fun_call(
31                        sub_argument),
32         argument2) {}
33
34## 5
35function()
36
37    function() body
38
39## 6a
40object <- function()
41{
42    body
43}
44
45## 6b
46object <-
47    function()
48    {
49        body
50    }
51
52## 6c
53object =
54    function()
55    {
56        body
57    }
58
59## 6d
60fun_call(argument) <-
61    function()
62    {
63        body
64    }
65
66## 7
67{
68    object <- function()
69    {
70        body
71    }
72}
73
74## 8
75{
76    fun_call(parameter = function()
77    {
78        body
79    })
80}
81
82## 9
83{
84    fun_call(parameter = function() {
85        body
86    })
87}
88
89## 10
90fun_call(
91    function() {
92    stuff
93}
94)
95
96## 11
97{
98    fun_call1(fun_call2(argument, function() {
99        stuff
100    })
101    )
102}
103
104## 12
105{
106    fun_call1(argument, fun_call2(function() {
107                            stuff
108                        })
109              )
110}
111
112## 13
113fun_call(object :=
114             function()
115             {
116                 body
117             })
118
119## 14
120fun_call(argument,
121         function(x)
122    stuff
123    )
124
125## 15a
126`object` <- function()
127{
128    body
129}
130
131## 15b
132"object" <- function()
133{
134    body
135}
136
137## 15c
138'object' <- function()
139{
140    body
141}
142
143
144### Function calls
145
146## 1
147fun_call(argument1,
148         argument2)
149
150## 2
151fun_call(
152    argument1,
153    argument2
154)
155
156## 3
157fun_call(parameter = (
158    stuff
159),
160argument)
161
162## 4
163fun_call(parameter = fun_argument(
164             argument1
165         ),
166         argument2)
167
168## 5
169fun_call(parameter = fun_argument(argument1,
170                                  argument2
171                                  )
172        ,
173         argument3)
174
175## 6
176`fun_call`(argument1,
177           argument2)
178
179## 6b
180`:=`(argument1,
181     argument2)
182
183## 7
184`fun_call`(
185    argument1,
186    argument2
187)
188
189## 7b
190`:=`(
191    argument1,
192    argument2
193)
194
195## 8
196fun_call(argument1
197       , argument2
198       , argument3,
199         argument4, (
200    stuff1
201),
202argument5, (
203    stuff2
204)
205,
206argument6
207)
208
209## 9
210fun_call(parameter =
211             fun_argument(
212                 sub_argument
213             ),
214         argument
215         )
216
217## 10
218fun_call(parameter = fun_argument(
219             sub_argument
220         ),
221         argument
222         )
223
224## 11
225{
226    fun_call1(
227        fun_call2 (argument1, argument2,
228                   parameter = fun_call3(
229                       argument3,
230                       argument4
231                   ), function(x) {
232            body
233        },
234        argument5,
235        fun_call4(
236            argument6
237        ),
238        argument7
239        ), {
240        stuff
241    },
242    argument8
243    )
244}
245
246## 12
247object <- fun_call(
248    arg1,
249    arg2
250)
251
252## 13
253fun_call1(fun_call2(
254    argument
255))
256
257## 14
258some_function <- fun_call1(fun_call2(
259    argument
260))
261
262## 15
263object[, fun_call(
264    argument
265)]
266
267## 16
268fun_call1(argument1, fun_call2(fun_call3(
269                         argument2
270                     ))
271          )
272
273## 17
274fun_call({
275    stuff1
276    stuff2
277
278    stuff3
279})
280
281## 18
282fun_call(argument1 %>%
283         stuff,
284         argument2)
285
286## 19
287fun_call(argument,
288         )
289
290## 20
291fun_call(parameter1 = ,
292         parameter2 = argument)
293
294
295### Blocks
296
297## 1
298{
299    function()
300    {
301        body
302    }
303}
304
305## 2
306{
307    fun_call({
308        stuff1
309    },
310    {
311        stuff2
312    }
313    )
314}
315
316## 3
317fun_call({
318    stuff1
319}, {
320    stuff2
321})
322
323## 4
324fun_call(
325    parameter1 = {
326    stuff1
327},
328parameter2 = {
329    stuff2
330}
331)
332
333## 5
334fun_call(parameter1 = {
335    stuff1
336},
337{
338    stuff2
339}, parameter2 = {
340    stuff3
341}, {
342    stuff4
343},
344parameter3 =
345    stuff5 ~
346        stuff6 +
347        stuff7,
348argument)
349
350## 6
351fun <- fun_call({
352    stuff1
353}, {
354    stuff2
355},
356{
357    stuff3
358}
359)
360
361## 7
362fun <- fun_call({
363    stuff
364},
365argument
366)
367
368## 8
369fun_call(function(x) {
370    body1
371},
372function(x) {
373    body2
374})
375
376## 9
377fun_call(
378{
379    stuff
380}, {
381    stuff
382}
383)
384
385## 10
386object <-
387    fun_call({
388        stuff
389    }, {
390        stuff
391    })
392
393## 11
394object <-
395    fun_call(     {
396        body
397    }
398    )
399
400## 12
401fun_call1(
402    fun_call2({
403        stuff
404    }
405    )
406)
407
408## 13
409{
410    stuff1
411
412    {
413        stuff2
414    }
415}
416
417## 14
418{{
419    stuff
420}
421}
422
423## 15
424({
425    stuff
426})
427
428## 16
429( {
430    stuff
431}
432)
433
434## 17
435fun_call(argument, function(argument1,
436                            argument2) {
437    body
438}
439)
440
441## 18
442fun_call(
443    argument,
444    function(argument1,
445             argument2) {
446    body
447}
448)
449
450## 19
451fun_call1(
452    fun_call2(argument, function(x) {
453        body
454    })
455)
456
457## 20
458fun_call1({
459    object1 <- fun_call2(
460        argument)
461    object2
462})
463
464## 21
465fun_call(argument,
466         function() {
467
468    stuff
469}
470}
471
472## 22
473function_call()
474stuff
475
476
477### Bracket indexing
478
479## 1
480object[
481    argument1,
482    argument2
483]
484
485## 2
486object[argument1,
487       argument2
488       ]
489
490## 3
491object[(
492    argument1
493)]
494
495## 4
496{
497    object[
498        fun_call(
499            body
500        ),
501        argument[
502        (
503            sub_argument
504        )
505        ]
506    ]
507}
508
509## 5
510{
511    object[
512        argument1,
513        argument2,
514        by = argument3
515    ][
516        argument4,
517        fun_call1(argument1,
518                  argument2)
519        argument5
520    ][
521        argument6,
522        fun_call2(
523            argument1,
524            argument2
525        )
526    ]
527}
528
529
530### Control flow
531
532## 1
533{
534    if (condition) {
535        stuff1
536    } else {
537        stuff2
538    }
539}
540
541## 2
542{
543    if (condition) {
544        stuff1
545    }
546    else {
547        stuff2
548    }
549}
550
551## 3
552{
553    if (condition)
554    {
555        stuff1
556    } else
557    {
558        stuff2
559    }
560}
561
562## 4
563{
564    if (condition)
565    {
566        stuff1
567    }
568    else
569    {
570        stuff2
571    }
572}
573
574## 5
575{
576    for (sequence)
577    {
578        stuff
579    }
580}
581
582## 6
583{
584    for (sequence) {
585        stuff
586    }
587}
588
589## 7
590if (condition)
591    stuff
592
593## 8
594for (sequence)
595    stuff
596
597## 9
598object <-
599    if (condition) {
600        stuff1
601    } else {
602        stuff2
603    }
604
605## 10
606{
607    object <-
608        if (condition) stuff1
609        else stuff2
610}
611
612## 10
613{
614    object <-
615        if (condition) fun_call(
616                           argument1,
617                           argument2
618                       )
619        else stuff
620}
621
622## 11
623{
624    fun_call(parameter =
625                 if (condition)
626                     stuff1
627                 else
628                     stuff2
629             )
630}
631
632## 12
633{
634    if (condition1) {
635        stuff1
636    }
637    else if (condition2)
638        stuff2
639    else if (condition3) {
640        stuff3
641    } else if (condition4)
642        stuff4
643    else
644        stuff5
645}
646
647## 13
648fun_call(
649    argument,
650    parameter = if (condition1) {
651                    stuff1
652                } else if (condition2) {
653                    stuff3
654                } else {
655                    stuff2
656                }
657)
658
659## 14
660fun_call(
661    argument,
662    parameter =
663        if (condition1)
664            stuff1
665        else if (condition2)
666            stuff3
667        else
668            stuff2
669)
670
671## 15
672object <- fun_call(argument,
673                   parameter = if (condition1) {
674                                   stuff1
675                               } else if (condition2) {
676                                   stuff3
677                               } else {
678                                   stuff2
679                               }
680                   )
681
682## 16
683object <- fun_call(argument, if (condition)
684                                 stuff1
685                             else if (condition2)
686                                 stuff2
687                   )
688
689## 17
690while(condition)
691    stuff
692
693## 18
694if (condition1)
695    stuff1
696else
697    if (condition2) {
698        stuff2
699    }
700
701## 19
702object <-
703    if (condition)
704        fun_call()[index]
705    else
706        stuff
707
708## 20
709funcall({
710    if (test1)
711        stuff1
712    if (test2)
713        stuff2
714})
715
716## 21
717fun_call(argument,
718         function() {
719
720    if (cond) object1 <- object2
721    else object3 <- object4
722})
723
724## 22
725if (cond1)
726    if (cond2)
727        if (cond3)
728            stuff1
729        else if (cond4)
730            stuff2
731        else
732            if (cond5)
733                stuff3
734        else
735            stuff4
736    else if (cond6)
737        stuff5
738    else
739        if (cond7)
740            stuff6
741    else
742        stuff7
743else if (cond8)
744    stuff8
745else
746    if (cond9)
747        stuff9
748else
749    stuff10
750
751## 23
752if (cond1)
753    if (cond2)
754        for (sequence1)
755            if (cond3)
756                stuff1
757            else
758                stuff2
759    else if (cond4)
760        for (sequence2)
761            stuff3
762    else
763        if (cond5)
764            fun_call(
765                argument
766            )
767    else
768        stuff5
769else
770    stuff6
771
772## 24
773object <- if(cond)
774              stuff1
775          else
776              stuff2
777
778## 25
779if (condition) {
780    (stuff)
781}
782
783## 26
784{
785    if (condition1)
786        stuff1
787    else if (condition2) {
788        stuff2
789    }
790    else if (condition3)
791        stuff3
792}
793
794## 27
795object <- if (condition) {
796              stuff1
797          }
798          else {
799              stuff2
800          }
801
802## 28
803if (condition)
804    object <-
805        stuff
806
807## 29
808if (condition1)
809    object <-
810        if (condition2)
811            stuff1
812        else
813            stuff2
814else
815    stuff3
816
817
818### Continuation lines
819
820## 1
821stuff1 %>%
822    stuff2 %>%
823    stuff3
824
825## 2
826{
827    stuff1 %>%
828        stuff2 %>%
829        stuff3
830} %>%
831    stuff4 %>%
832    stuff5
833
834## 3
835(
836    stuff1 %>%
837    stuff2 %>%
838    stuff3
839) %>%
840    stuff4 %>%
841    stuff5
842
843## 4
844object[
845    stuff1 %>%
846    stuff2 %>%
847    stuff3
848] %>%
849    stuff4 %>%
850    stuff5
851
852## 5
853stuff1 %>%
854    stuff2 %>%
855    if (condition) {
856        stuff3 %>%
857            stuff4 %>%
858            stuff5
859    } else {
860        stuff6 %>%
861            stuff7 %>%
862            stuff8
863    } %>%
864    stuff9 %>%
865    stuff10
866
867## 6
868stuff[stuff1 %>%
869      stuff2 %>%
870      stuff3] %>%
871    stuff4 %>%
872    stuff5
873
874## 7
875ggplot() +
876    geom(lhs -
877         rhs
878         ) +
879    geom()
880
881## 8
882{
883    ggplot() +
884        geom1(argument1,
885              argument2 = (
886            stuff1
887        ) -
888            stuff2) +
889        geom2() +
890        geom3()
891}
892
893## 9
894stuff +
895    fun_call(parameter = argument1,
896             fun_call((stuff1 - stuff2 +
897                       stuff3
898             ) /
899             stuff4)
900             ) /
901    stuff5
902
903fun_call(arg1 +
904         arg2, arg3 +
905               arg4)
906
907## 10
908fun_call(argument1 %>%
909         stuff1, argument2 %>%
910                 stuff2, {
911    stuff3 %>%
912        stuff4
913} %>%
914stuff5,
915argument3
916)
917
918## 11
919object1 <- object2 %>%
920    fun_call1() %>%
921    fun_call2()
922
923## 12
924object1 <-
925    object2%>%fun_call1() %>%
926    fun_call2()%>%
927    fun_call3()
928
929## 13
930{
931    (stuff) %>%
932        fun_call()
933
934    {stuff} %>%
935        fun_call()
936}
937
938## 14
939{
940    object + (
941        stuff
942    ) %>%
943        fun_call()
944
945    object + {
946        stuff
947    } %>%
948        fun_call()
949}
950
951## 15
952object <-
953    stuff1 +
954    stuff2 ~
955        stuff3 +
956        stuff4 :=
957            stuff5 +
958            stuff6 =
959                stuff7 +
960                stuff8
961
962## 16
963object <- stuff1 +
964    stuff2 + stuff3 +
965    stuff4 ~ stuff5 +
966        stuff6 + stuff7 +
967        stuff8 := stuff9 +
968            stuff10 + stuff11 +
969            stuff12 = stuff13 +
970                stuff14 + stuff15 +
971                stuff16
972
973## 17
974object %>%
975    {
976        stuff1
977    } %>% object[index] %>% {stuff2} %>% fun_call1() +
978    {if (condition1) stuff3 else stuff4} +
979    if (condition2) {
980        stuff5
981    } else if (condition3) {
982        stuff6
983    } else {
984        stuff7
985    } %>%
986    (fun_call2()) %>% fun_call3() %>%
987    fun_call3()
988
989## 18
990`object`$`elem` <- stuff1 +
991    stuff2
992`object`@`elem` <- stuff1 +
993    stuff2
994
995## 19
996{
997    ## comment
998    object1 <-
999        object2
1000}
1001
1002## 20
1003fun_call(stuff1 + stuff2 +
1004         stuff3 +
1005         (stuff4 + stuff5 +
1006          stuff6) +
1007         object[stuff7 +
1008                stuff8] +
1009         {stuff9 +
1010              stuff10})
1011
1012
1013## 21
1014object %>% fun_call({
1015               stuff1
1016           }) %>%
1017    stuff2
1018
1019## 22
1020"string1" %>%
1021    'string2' %>%
1022    `stuff1` %>%
1023    stuff2
1024
1025## 23
1026object[index] %>%
1027    fun_call1(
1028        argument1
1029    )[index2] %>%
1030    fun_call2(
1031        argument2
1032    )[[index3]] %>%
1033    stuff
1034
1035## 24
1036fun_call(argument) <-
1037    hop
1038
1039## 25
1040fun_call1(argument, fun_call2(
1041                        stuff1
1042                    ) +
1043                    stuff2)
1044
1045## 26
1046object <-
1047    {
1048        stuff1
1049    } %>%
1050    (
1051        stuff2
1052    )
1053
1054## 27
1055fun_call1(fun_call2(fun_call3(
1056    argument
1057))) %>%
1058    fun_call2()
1059
1060## 28
1061fun_call(argument1 %>%
1062         stuff,
1063         argument2)
1064
1065## 29
1066fun_call(stuff1 :=
1067             (stuff2),
1068         argument)
1069
1070## 30
1071fun_call1(fun_call2(
1072    fun_call3()) %>%
1073    stuff)
1074
1075## 31
1076fun_call(object1 + object2 ~ object3 +
1077             object4 + object5 := object6 +
1078                 object7,
1079         argument)
1080
1081## 32
1082fun_call(object ~
1083             )
1084
1085## 33
1086fun_call(object +
1087         )
1088
1089## 34
1090fun_call(object[index1]$element[index2][index3]@attribute +
1091         stuff)
1092
1093## 35a
1094fun_call(argument <-
1095             object)
1096
1097## 35b
1098fun_call(argument <<-
1099             object)
1100
1101## 36
1102funcall(!stuff1 ||
1103        stuff2)
1104
1105
1106### Comments
1107
1108## 1
1109                                        # Side comment
1110
1111## 2
1112{
1113    ## Hanging comment 1
1114    fun_call(
1115    {
1116        ## Hanging comment 2
1117    }
1118    )
1119}
1120
1121## 3
1122{
1123### Section comment
1124}
1125
1126## 4
1127fun_call(
1128    ## Comment
1129    argument
1130)
1131
1132## 5
1133object %>%
1134    ## comment,
1135    ## comment
1136    stuff
1137
1138## 6a
1139object <-
1140    function()
1141    {
1142        stuff
1143        ## comment
1144    }
1145
1146## 6b
1147object <-
1148    function()
1149    {
1150        ## comment
1151    }
1152
1153## 7
1154{
1155    fun_call(lhs +
1156### Comment
1157             rhs
1158             )
1159}
1160
1161## 8
1162"#" + # comment
1163    NULL
1164
1165## 9
1166"* #"
1167x
1168
1169
1170### Logical operators
1171
1172## 1
1173stuff1 &&
1174    stuff2 ||
1175    stuff3
1176
1177## 2
1178(stuff1 &&
1179 stuff2 ||
1180 stuff3)
1181
1182## 3
1183if (condition1 &&
1184    condition2 ||
1185    (condition3 && condition4) ||
1186    (condition5 &&
1187     condition6 &&
1188     condition7) ||
1189    condition8) {
1190    stuff
1191} && condition8 ||
1192    condition9 ||
1193    condition10
1194
1195## 4
1196stuff1 == stuff2 ||
1197    condition
1198
1199## 5
1200(stuff1 == stuff2 ||
1201 condition
1202)
1203
1204## 6
1205(stuff1 != stuff2 ||
1206 condition
1207)
1208
1209## 7
1210object <-
1211    condition1 | condition2 |
1212    condition3 | condition4
1213
1214## 8
1215if (condition1 || object1 %op% object2 ||
1216    condition3) {
1217    stuff
1218}
1219
1220## 9
1221any(condition1 |
1222    condition2) &&
1223    all(condition3 &
1224        condition4)
1225
1226
1227### Specific situations and overrides
1228
1229## 1
1230fun_call(
1231    ifelse(condition1, argument1,
1232    ifelse(condition2, argument2,
1233           ifelse))
1234)
1235