Arethmetic Operation

a = 10
b = 3

# Addition
res_add = a + b

# Sub 
res_sub = a - b

# Multiplication
res_mult = a*b

# Division
res_div = a/b

# Module (reminder)
res_mod = a %% b

# power
res_pow = a**b
res_pow2 = a^b

# Simplification
res = (5+3)*10 - ((3-1)+4)/2

String

Combine

seq1 = "ACTGAATTA"
seq2 = "ACTG"

combined_seq = paste(seq1, seq2)
print(combined_seq)
[1] "ACTGAATTA ACTG"
combined_seq = paste(seq1, seq2, sep = "")
print(combined_seq)
[1] "ACTGAATTAACTG"
combined_seq = paste(seq1, seq2, sep = "_" )
print(combined_seq)
[1] "ACTGAATTA_ACTG"
Combined_seq = paste(seq1, seq1, seq2, seq2, sep = "_")
print(Combined_seq)
[1] "ACTGAATTA_ACTGAATTA_ACTG_ACTG"

substring

seq1 = "ACTGAATTA"
sub = substr(seq1, 4, 8)
sub
[1] "GAATT"

String length

seq3 = " ACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTA"

n = nchar(seq3)
n
[1] 64

Pattern matching

seq3 = " ACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTAACTGAATTA"

p = "TT"
grep(p, seq3)
[1] 1
grepl(p, seq3)
[1] TRUE
grepl("cccc", seq3)
[1] FALSE
grepl("AACTGAATTAA", seq3)
[1] TRUE

Position finding

occ = gregexpr(p, seq3)
occ
[[1]]
[1]  8 17 26 35 44 53 62
attr(,"match.length")
[1] 2 2 2 2 2 2 2
attr(,"index.type")
[1] "chars"
attr(,"useBytes")
[1] TRUE
sum(unlist(occ) != -1)
[1] 7
gregexpr("234589", seq3)
[[1]]
[1] -1
attr(,"match.length")
[1] -1
attr(,"index.type")
[1] "chars"
attr(,"useBytes")
[1] TRUE

How to split

seq4 = "gene1, gene2, gene3, gene4"

strsplit(seq4, split = ",")
[[1]]
[1] "gene1"  " gene2" " gene3" " gene4"
seq4 = "gene1 - gene2 - gene3 - gene4"

strsplit(seq4, split = " - ")
[[1]]
[1] "gene1" "gene2" "gene3" "gene4"

Reverse string

library(stringi)
seq5 = "ABCDEFG"

stri_reverse(seq5)
[1] "GFEDCBA"
data_set = iris

Vector

create

v = c(10, 30, 64, "this", 89, "time" )
print(v)
[1] "10"   "30"   "64"   "this" "89"   "time"
v1 = c(10, 30, 64, "this", 89, "time" )

Access [ ]

v[3]
[1] "64"
v[5]
[1] "89"
v[7]
[1] NA
v[1:3]
[1] "10" "30" "64"
v[2:4]
[1] "30"   "64"   "this"
v[2:10]
[1] "30"   "64"   "this" "89"   "time" NA     NA     NA     NA    

Insert element

v = c(v, 100)
v1 = c(v,200)
v1 = c("start", v)
v1
[1] "start" "10"    "30"    "64"    "this"  "89"    "time"  "100"  
v1[1:3]
v1[4:8]

v1 = c(v1[1:3], 300, v1[4:8])
v1

sorting (false means ascending,true means descending)

scores = c(10, 100, 50, 70, 90, 55, 89)
sort(scores)
[1]  10  50  55  70  89  90 100
sort(scores, decreasing = TRUE)
[1] 100  90  89  70  55  50  10
?sort()
match(100, scores)
[1] 2
match(70, scores)
[1] 4
match(1000, scores)
[1] NA

Conditional Selection

scores[scores > 50]
[1] 100  70  90  55  89
scores[scores >= 50]
[1] 100  50  70  90  55  89
scores[scores < 50]
[1] 10
scores[scores == 50]
[1] 50
scores[scores == 1000]
numeric(0)

find min,max

min(scores)
[1] 10
max(scores)
[1] 100

###avrg, sum

mean(scores)
[1] 66.28571
sum(scores)
[1] 464

length

length(scores)
[1] 7

SD

sd(scores)
[1] 31.06292

varience

var(scores)
[1] 964.9048

Standerd error = sd/sqrt(n)

se = sd(scores) / sqrt(6)
se = sd(scores) / 6**0.5
se
[1] 12.68138

Quantiles

quantile(scores)
   0%   25%   50%   75%  100% 
 10.0  52.5  70.0  89.5 100.0 

correlation

-1, +1 =>

age1 = c(60, 25, 50, 30, 27, 40, 35)
age1
[1] 60 25 50 30 27 40 35
scores
[1]  10 100  50  70  90  55  89
cor(scores,age1)
[1] -0.9388972
age2 = c(100, 70, 60, 80, 60, 100, 90)
cor(scores,age2)
[1] -0.4987372

delete element from vec

scores
[1]  10 100  50  70  90  55  89
scores[-2]
[1] 10 50 70 90 55 89

conditional statement (if else)

30 > 20
[1] TRUE
30 < 20
[1] FALSE
30 == 20
[1] FALSE
a = 30
b = 20
a > b
[1] TRUE

temp = 25

if (temp > 30) {
  print("This is a warm day")
} else {
  print("This is a normal day")
}
[1] "This is a normal day"
cal = "-"
a = 10
b = 5

if(cal == "+"){
  print(a+b)
} else if (cal == "-"){
  print(a-b)
} else if (cal == "*"){
  print(a*b)
} else if (cal == "/"){
  print(a/b)
} else {
  print(invalid)
}
[1] 5
scores
[1]  10 100  50  70  90  55  89
s = scores[4]

if (s > 50){
  print("pass!")
} else {
  print("fail")
}
[1] "pass!"

Loop


for (i in 1:10){
  print(i)
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
for (i in 1:10){
  print(scores[i])
}
[1] 10
[1] 100
[1] 50
[1] 70
[1] 90
[1] 55
[1] 89
[1] NA
[1] NA
[1] NA
  
  
for (i in 1:length(scores)){
  print(scores[i])
}
[1] 10
[1] 100
[1] 50
[1] 70
[1] 90
[1] 55
[1] 89
  
for (i in 1:length(scores)){
  print(scores[i])
  
s = scores[i]

if (s > 50){
  print("pass!")
} else {
  print("fail")
}
}
[1] 10
[1] "fail"
[1] 100
[1] "pass!"
[1] 50
[1] "fail"
[1] 70
[1] "pass!"
[1] 90
[1] "pass!"
[1] 55
[1] "pass!"
[1] 89
[1] "pass!"
for (i in 1:length(scores)){
  
s = scores[i]

if (s > 50){
  cat(i, s, "pass!\n")
} else {
  cat(i, s, "fail\n")
}
}
1 10 fail
2 100 pass!
3 50 fail
4 70 pass!
5 90 pass!
6 55 pass!
7 89 pass!
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCiMjIEFyZXRobWV0aWMgT3BlcmF0aW9uDQoNCmBgYHtyfQ0KYSA9IDEwDQpiID0gMw0KDQojIEFkZGl0aW9uDQpyZXNfYWRkID0gYSArIGINCg0KIyBTdWIgDQpyZXNfc3ViID0gYSAtIGINCg0KIyBNdWx0aXBsaWNhdGlvbg0KcmVzX211bHQgPSBhKmINCg0KIyBEaXZpc2lvbg0KcmVzX2RpdiA9IGEvYg0KDQojIE1vZHVsZSAocmVtaW5kZXIpDQpyZXNfbW9kID0gYSAlJSBiDQoNCiMgcG93ZXINCnJlc19wb3cgPSBhKipiDQpyZXNfcG93MiA9IGFeYg0KDQojIFNpbXBsaWZpY2F0aW9uDQpyZXMgPSAoNSszKSoxMCAtICgoMy0xKSs0KS8yDQoNCmBgYA0KDQoNCiMjIFN0cmluZw0KDQojIyMgQ29tYmluZQ0KDQpgYGB7cn0NCnNlcTEgPSAiQUNUR0FBVFRBIg0Kc2VxMiA9ICJBQ1RHIg0KDQpjb21iaW5lZF9zZXEgPSBwYXN0ZShzZXExLCBzZXEyKQ0KcHJpbnQoY29tYmluZWRfc2VxKQ0KDQpjb21iaW5lZF9zZXEgPSBwYXN0ZShzZXExLCBzZXEyLCBzZXAgPSAiIikNCnByaW50KGNvbWJpbmVkX3NlcSkNCg0KY29tYmluZWRfc2VxID0gcGFzdGUoc2VxMSwgc2VxMiwgc2VwID0gIl8iICkNCnByaW50KGNvbWJpbmVkX3NlcSkNCg0KQ29tYmluZWRfc2VxID0gcGFzdGUoc2VxMSwgc2VxMSwgc2VxMiwgc2VxMiwgc2VwID0gIl8iKQ0KcHJpbnQoQ29tYmluZWRfc2VxKQ0KDQpgYGANCg0KIyMjIHN1YnN0cmluZw0KYGBge3J9DQpzZXExID0gIkFDVEdBQVRUQSINCnN1YiA9IHN1YnN0cihzZXExLCA0LCA4KQ0Kc3ViDQoNCmBgYA0KIyMjIFN0cmluZyBsZW5ndGgNCmBgYHtyfQ0Kc2VxMyA9ICIgQUNUR0FBVFRBQUNUR0FBVFRBQUNUR0FBVFRBQUNUR0FBVFRBQUNUR0FBVFRBQUNUR0FBVFRBQUNUR0FBVFRBIg0KDQpuID0gbmNoYXIoc2VxMykNCm4NCg0KYGBgDQojIyMgUGF0dGVybiBtYXRjaGluZw0KYGBge3J9DQpzZXEzID0gIkFDVEdBQVRUQUFDVEdBQVRUQUFDVEdBQVRUQUFDVEdBQVRUQUFDVEdBQVRUQUFDVEdBQVRUQUFDVEdBQVRUQSINCg0KcCA9ICJUVCINCmdyZXAocCwgc2VxMykNCg0KZ3JlcGwocCwgc2VxMykNCmdyZXBsKCJjY2NjIiwgc2VxMykNCmdyZXBsKCJBQUNUR0FBVFRBQSIsIHNlcTMpDQoNCg0KYGBgDQojIyBQb3NpdGlvbiBmaW5kaW5nDQoNCmBgYHtyfQ0Kb2NjID0gZ3JlZ2V4cHIocCwgc2VxMykNCm9jYw0KYGBgDQoNCmBgYHtyfQ0Kc3VtKHVubGlzdChvY2MpICE9IC0xKQ0KYGBgDQpgYGB7cn0NCmdyZWdleHByKCIyMzQ1ODkiLCBzZXEzKQ0KYGBgDQojIyBIb3cgdG8gc3BsaXQNCmBgYHtyfQ0Kc2VxNCA9ICJnZW5lMSwgZ2VuZTIsIGdlbmUzLCBnZW5lNCINCg0Kc3Ryc3BsaXQoc2VxNCwgc3BsaXQgPSAiLCIpDQpgYGANCmBgYHtyfQ0Kc2VxNCA9ICJnZW5lMSAtIGdlbmUyIC0gZ2VuZTMgLSBnZW5lNCINCg0Kc3Ryc3BsaXQoc2VxNCwgc3BsaXQgPSAiIC0gIikNCg0KDQoNCmBgYA0KIyMjIFJldmVyc2Ugc3RyaW5nDQpgYGB7cn0NCmxpYnJhcnkoc3RyaW5naSkNCnNlcTUgPSAiQUJDREVGRyINCg0Kc3RyaV9yZXZlcnNlKHNlcTUpDQoNCmBgYA0KYGBge3J9DQpkYXRhX3NldCA9IGlyaXMNCmBgYA0KDQojIyBWZWN0b3INCiMjIyBjcmVhdGUNCg0KYGBge3J9DQp2ID0gYygxMCwgMzAsIDY0LCAidGhpcyIsIDg5LCAidGltZSIgKQ0KcHJpbnQodikNCg0KdjEgPSBjKDEwLCAzMCwgNjQsICJ0aGlzIiwgODksICJ0aW1lIiApDQpgYGANCiMjIyBBY2Nlc3MgWyBdDQoNCmBgYHtyfQ0KdlszXQ0Kdls1XQ0Kdls3XQ0KYGBgDQoNCmBgYHtyfQ0KdlsxOjNdDQp2WzI6NF0NCg0KdlsyOjEwXQ0KYGBgDQojIyMgSW5zZXJ0IGVsZW1lbnQNCmBgYHtyfQ0KdiA9IGModiwgMTAwKQ0KdjEgPSBjKHYsMjAwKQ0KDQpgYGANCg0KYGBge3J9DQp2MSA9IGMoInN0YXJ0IiwgdikNCnYxDQoNCg0KYGBgDQpgYGB7cn0NCnYxWzE6M10NCnYxWzQ6OF0NCg0KdjEgPSBjKHYxWzE6M10sIDMwMCwgdjFbNDo4XSkNCnYxDQoNCg0KYGBgDQoNCiMjIyBzb3J0aW5nIChmYWxzZSBtZWFucyBhc2NlbmRpbmcsdHJ1ZSBtZWFucyBkZXNjZW5kaW5nKQ0KDQpgYGB7cn0NCnNjb3JlcyA9IGMoMTAsIDEwMCwgNTAsIDcwLCA5MCwgNTUsIDg5KQ0Kc29ydChzY29yZXMpDQpzb3J0KHNjb3JlcywgZGVjcmVhc2luZyA9IFRSVUUpDQpgYGANCmBgYHtyfQ0KP3NvcnQoKQ0KYGBgDQoNCg0KYGBge3J9DQptYXRjaCgxMDAsIHNjb3JlcykNCm1hdGNoKDcwLCBzY29yZXMpDQptYXRjaCgxMDAwLCBzY29yZXMpDQpgYGANCiMjIyBDb25kaXRpb25hbCBTZWxlY3Rpb24NCmBgYHtyfQ0Kc2NvcmVzW3Njb3JlcyA+IDUwXQ0KYGBgDQoNCmBgYHtyfQ0Kc2NvcmVzW3Njb3JlcyA+PSA1MF0NCg0KYGBgDQpgYGB7cn0NCnNjb3Jlc1tzY29yZXMgPCA1MF0NCmBgYA0KDQpgYGB7cn0NCnNjb3Jlc1tzY29yZXMgPT0gNTBdDQpzY29yZXNbc2NvcmVzID09IDEwMDBdDQpgYGANCg0KIyMjIGZpbmQgbWluLG1heA0KYGBge3J9DQptaW4oc2NvcmVzKQ0KbWF4KHNjb3JlcykNCg0KYGBgDQojIyNhdnJnLCBzdW0NCmBgYHtyfQ0KbWVhbihzY29yZXMpDQoNCnN1bShzY29yZXMpDQpgYGANCiMjIyBsZW5ndGgNCmBgYHtyfQ0KbGVuZ3RoKHNjb3JlcykNCmBgYA0KDQojIyMgU0QNCmBgYHtyfQ0Kc2Qoc2NvcmVzKQ0KYGBgDQojIyMgdmFyaWVuY2UNCmBgYHtyfQ0KdmFyKHNjb3JlcykNCmBgYA0KIyMjIFN0YW5kZXJkIGVycm9yID0gc2Qvc3FydChuKQ0KYGBge3J9DQpzZSA9IHNkKHNjb3JlcykgLyBzcXJ0KDYpDQpzZSA9IHNkKHNjb3JlcykgLyA2KiowLjUNCnNlDQpgYGANCiMjIyBRdWFudGlsZXMNCmBgYHtyfQ0KcXVhbnRpbGUoc2NvcmVzKQ0KYGBgDQojIyMgY29ycmVsYXRpb24NCiMjIyAtMSwgKzEgPT4NCmBgYHtyfQ0KYWdlMSA9IGMoNjAsIDI1LCA1MCwgMzAsIDI3LCA0MCwgMzUpDQphZ2UxDQpzY29yZXMNCmNvcihzY29yZXMsYWdlMSkNCmBgYA0KYGBge3J9DQphZ2UyID0gYygxMDAsIDcwLCA2MCwgODAsIDYwLCAxMDAsIDkwKQ0KY29yKHNjb3JlcyxhZ2UyKQ0KYGBgDQojIyMgZGVsZXRlIGVsZW1lbnQgZnJvbSB2ZWMNCmBgYHtyfQ0Kc2NvcmVzDQpzY29yZXNbLTJdDQpgYGANCg0KIyMjIGNvbmRpdGlvbmFsIHN0YXRlbWVudCAoaWYgZWxzZSkNCmBgYHtyfQ0KMzAgPiAyMA0KMzAgPCAyMA0KDQozMCA9PSAyMA0KDQphID0gMzANCmIgPSAyMA0KYSA+IGINCmBgYA0KDQpgYGB7cn0NCg0KdGVtcCA9IDI1DQoNCmlmICh0ZW1wID4gMzApIHsNCiAgcHJpbnQoIlRoaXMgaXMgYSB3YXJtIGRheSIpDQp9IGVsc2Ugew0KICBwcmludCgiVGhpcyBpcyBhIG5vcm1hbCBkYXkiKQ0KfQ0KDQpgYGANCg0KYGBge3J9DQpjYWwgPSAiLSINCmEgPSAxMA0KYiA9IDUNCg0KaWYoY2FsID09ICIrIil7DQogIHByaW50KGErYikNCn0gZWxzZSBpZiAoY2FsID09ICItIil7DQogIHByaW50KGEtYikNCn0gZWxzZSBpZiAoY2FsID09ICIqIil7DQogIHByaW50KGEqYikNCn0gZWxzZSBpZiAoY2FsID09ICIvIil7DQogIHByaW50KGEvYikNCn0gZWxzZSB7DQogIHByaW50KGludmFsaWQpDQp9DQoNCg0KDQpgYGANCmBgYHtyfQ0Kc2NvcmVzDQoNCnMgPSBzY29yZXNbNF0NCg0KaWYgKHMgPiA1MCl7DQogIHByaW50KCJwYXNzISIpDQp9IGVsc2Ugew0KICBwcmludCgiZmFpbCIpDQp9DQoNCg0KYGBgDQojIyMgTG9vcA0KYGBge3J9DQoNCmZvciAoaSBpbiAxOjEwKXsNCiAgcHJpbnQoaSkNCn0NCg0KYGBgDQpgYGB7cn0NCmZvciAoaSBpbiAxOjEwKXsNCiAgcHJpbnQoc2NvcmVzW2ldKQ0KfQ0KICANCiAgDQpgYGANCmBgYHtyfQ0KZm9yIChpIGluIDE6bGVuZ3RoKHNjb3Jlcykpew0KICBwcmludChzY29yZXNbaV0pDQp9DQogIA0KYGBgDQpgYGB7cn0NCmZvciAoaSBpbiAxOmxlbmd0aChzY29yZXMpKXsNCiAgcHJpbnQoc2NvcmVzW2ldKQ0KICANCnMgPSBzY29yZXNbaV0NCg0KaWYgKHMgPiA1MCl7DQogIHByaW50KCJwYXNzISIpDQp9IGVsc2Ugew0KICBwcmludCgiZmFpbCIpDQp9DQp9DQoNCmBgYA0KYGBge3J9DQpmb3IgKGkgaW4gMTpsZW5ndGgoc2NvcmVzKSl7DQogIA0KcyA9IHNjb3Jlc1tpXQ0KDQppZiAocyA+IDUwKXsNCiAgY2F0KGksIHMsICJwYXNzIVxuIikNCn0gZWxzZSB7DQogIGNhdChpLCBzLCAiZmFpbFxuIikNCn0NCn0NCg0KDQoNCg0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=