R version 4.5.2 (2025-10-31 ucrt) -- "[Not] Part in a Rumble" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > x <- c(10,-4,8,13) > x + 10 [1] 20 6 18 23 > rivers [1] 735 320 325 392 524 450 1459 135 465 600 [11] 330 336 280 315 870 906 202 329 290 1000 [21] 600 505 1450 840 1243 890 350 407 286 280 [31] 525 720 390 250 327 230 265 850 210 630 [41] 260 230 360 730 600 306 390 420 291 710 [51] 340 217 281 352 259 250 470 680 570 350 [61] 300 560 900 625 332 2348 1171 3710 2315 2533 [71] 780 280 410 460 260 255 431 350 760 618 [81] 338 981 1306 500 696 605 250 411 1054 735 [91] 233 435 490 310 460 383 375 1270 545 445 [101] 1885 380 300 380 377 425 276 210 800 420 [111] 350 360 538 1100 1205 314 237 610 360 540 [121] 1038 424 310 300 444 301 268 620 215 652 [131] 900 525 246 360 529 500 720 270 430 671 [141] 1770 > #vlongrivers = rivers with length >=2000 > vlongrivers.indx <- rivers >= 2000 > vlongrivers.indx [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [9] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [17] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [33] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [41] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [49] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [57] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [65] FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE [73] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [81] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [89] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [97] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [105] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [113] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [121] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [129] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [137] FALSE FALSE FALSE FALSE FALSE > which(rivers) Error in which(rivers) : argument to 'which' is not logical > which(vlongrivers.indx) [1] 66 68 69 70 > (1:141)[vlongrivers.indx] #equivalent to which [1] 66 68 69 70 > seq(from=5, to = 10, by=0.5) [1] 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 [11] 10.0 > seq(from=5, to = 10, by=-0.5) Error in seq.default(from = 5, to = 10, by = -0.5) : wrong sign in 'by' argument > ?seq > seq(from=5, to = 10, length.out=3) [1] 5.0 7.5 10.0 > seq(from=5, to = 10, length.out=30) [1] 5.000000 5.172414 5.344828 5.517241 5.689655 [6] 5.862069 6.034483 6.206897 6.379310 6.551724 [11] 6.724138 6.896552 7.068966 7.241379 7.413793 [16] 7.586207 7.758621 7.931034 8.103448 8.275862 [21] 8.448276 8.620690 8.793103 8.965517 9.137931 [26] 9.310345 9.482759 9.655172 9.827586 10.000000 > seq(length.out=3, to=10, from=5) [1] 5.0 7.5 10.0 > seq(by=3, to=10, from=5) [1] 5 8 > seq(from=5, to=10, by = 3) #this is equivalent to above, as arguments are named [1] 5 8 > seq(5, 10, 3 ) #this is a shortcut of the above [1] 5 8 > seq(5, 10, ,3 ) #this is a shortcut of the above [1] 5.0 7.5 10.0 > seq(from=5, to=10, length.out=3 ) #this is the full version [1] 5.0 7.5 10.0 > seq(by=5, 10, 3 ) Error in seq.default(by = 5, 10, 3) : wrong sign in 'by' argument > seq(1,20,length.out=100) [1] 1.000000 1.191919 1.383838 1.575758 1.767677 [6] 1.959596 2.151515 2.343434 2.535354 2.727273 [11] 2.919192 3.111111 3.303030 3.494949 3.686869 [16] 3.878788 4.070707 4.262626 4.454545 4.646465 [21] 4.838384 5.030303 5.222222 5.414141 5.606061 [26] 5.797980 5.989899 6.181818 6.373737 6.565657 [31] 6.757576 6.949495 7.141414 7.333333 7.525253 [36] 7.717172 7.909091 8.101010 8.292929 8.484848 [41] 8.676768 8.868687 9.060606 9.252525 9.444444 [46] 9.636364 9.828283 10.020202 10.212121 10.404040 [51] 10.595960 10.787879 10.979798 11.171717 11.363636 [56] 11.555556 11.747475 11.939394 12.131313 12.323232 [61] 12.515152 12.707071 12.898990 13.090909 13.282828 [66] 13.474747 13.666667 13.858586 14.050505 14.242424 [71] 14.434343 14.626263 14.818182 15.010101 15.202020 [76] 15.393939 15.585859 15.777778 15.969697 16.161616 [81] 16.353535 16.545455 16.737374 16.929293 17.121212 [86] 17.313131 17.505051 17.696970 17.888889 18.080808 [91] 18.272727 18.464646 18.656566 18.848485 19.040404 [96] 19.232323 19.424242 19.616162 19.808081 20.000000 > ?rep > rep(1:5, times=4) [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 > rep(1:5, each=4) [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 > rep(c('a','b','c'), each=10) [1] "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "b" "b" "b" [14] "b" "b" "b" "b" "b" "b" "b" "c" "c" "c" "c" "c" "c" [27] "c" "c" "c" "c" > rep(1:10,times=1:10) [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 [19] 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 [37] 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 [55] 10 > rep(1:10,times=1:5) Error in rep(1:10, times = 1:5) : invalid 'times' argument > rep(1:10,3) #shorthand version of abpve [1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 [19] 9 10 1 2 3 4 5 6 7 8 9 10 > ?sort > > > > #character vectors > xchar <- c('605','103','23','-8') > xchar [1] "605" "103" "23" "-8" > xchar2 <- c('Male','Female','Male','Male') > char2 Error: object 'char2' not found > xchar2 [1] "Male" "Female" "Male" "Male" > xchar2 - 10 Error in xchar2 - 10 : non-numeric argument to binary operator > xchar - 10 Error in xchar - 10 : non-numeric argument to binary operator > as.numeric(xchar) [1] 605 103 23 -8 > as.numeric(xchar2) [1] NA NA NA NA Warning message: NAs introduced by coercion > #lets introduce 1 or 2 built-in character vectors > letters [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" [14] "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" > LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" [14] "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" > month.abb [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" [10] "Oct" "Nov" "Dec" > letters > 'm' [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [10] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE [19] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE > xchar2 [1] "Male" "Female" "Male" "Male" > xchar2 == 'Male' [1] TRUE FALSE TRUE TRUE > sum(xchar2 == 'Male') [1] 3 > > > paste('no',1:10) [1] "no 1" "no 2" "no 3" "no 4" "no 5" "no 6" [7] "no 7" "no 8" "no 9" "no 10" > paste(1:5,seq(10,50,10)) [1] "1 10" "2 20" "3 30" "4 40" "5 50" > paste(1:5, seq(10,50,10), sep='*') [1] "1*10" "2*20" "3*30" "4*40" "5*50" > paste(1:5, seq(10,50,10), sep='abcd') [1] "1abcd10" "2abcd20" "3abcd30" "4abcd40" "5abcd50" > paste(1:5, seq(10,50,10), sep='') [1] "110" "220" "330" "440" "550" > > #useful for labelling, eg > #c('label1','label2',...'label50') #slow way > paste('label',1:50,sep='') [1] "label1" "label2" "label3" "label4" "label5" [6] "label6" "label7" "label8" "label9" "label10" [11] "label11" "label12" "label13" "label14" "label15" [16] "label16" "label17" "label18" "label19" "label20" [21] "label21" "label22" "label23" "label24" "label25" [26] "label26" "label27" "label28" "label29" "label30" [31] "label31" "label32" "label33" "label34" "label35" [36] "label36" "label37" "label38" "label39" "label40" [41] "label41" "label42" "label43" "label44" "label45" [46] "label46" "label47" "label48" "label49" "label50" > v <- paste('label',1:50,sep='') > sum(v == 'label39') [1] 1 > rivers1to10 <- rivers[1:10] > rivers1to10 [1] 735 320 325 392 524 450 1459 135 465 600 > sort(rivers1to10) [1] 135 320 325 392 450 465 524 600 735 1459 > order(rivers1to10) [1] 8 2 3 4 6 9 5 10 1 7 > rank(rivers1to10) [1] 9 2 3 4 7 5 10 1 6 8 > > > sort(rivers1to10, decreasing=T) [1] 1459 735 600 524 465 450 392 325 320 135 > sort(rivers1to10, T) [1] 1459 735 600 524 465 450 392 325 320 135 > rank(c(5,10,2,6,9)) [1] 2 5 1 3 4 > rank(c(5,10,2,5,9)) [1] 2.5 5.0 1.0 2.5 4.0 > rank(c(5,10,5,5,9)) [1] 2 5 2 2 4 > ?rank > rank(c(5,10,2,5,9)) [1] 2.5 5.0 1.0 2.5 4.0 > rivers1to10 [1] 735 320 325 392 524 450 1459 135 465 600 > as.character(rivers1to10) [1] "735" "320" "325" "392" "524" "450" "1459" [8] "135" "465" "600" > > > letters == 'c' [1] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [19] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > letters == c('b','c') [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [10] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [19] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE