This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

plot(cars)

print(cars)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

cat("Hello, World!\nWitaj Świecie!")
Hello, World!
Witaj Świecie!
#typy proste
zmienna1 <- 1L #obiekt nazwany (zmienna)
zmienna2 <- 3.0
typeof(zmienna1)
[1] "integer"
typeof(zmienna2)
[1] "double"
mode(zmienna1)
[1] "numeric"
mode(zmienna2)
[1] "numeric"
zmienna3 <- "4.0"
typeof(zmienna3); mode(zmienna3)
[1] "character"
[1] "character"
(zmienna4 <- 1) #wymusza wydruk
[1] 1
zmienna1
[1] 1
str(zmienna3)
 chr "4.0"
wektor <- c(0,1,2,3,4,5,6,7,8,9)
print(wektor)
 [1] 0 1 2 3 4 5 6 7 8 9
typeof(wektor)
[1] "double"
mode(wektor)
[1] "numeric"
length(wektor)
[1] 10
"print"(wektor)
 [1] 0 1 2 3 4 5 6 7 8 9
wektor
 [1] 0 1 2 3 4 5 6 7 8 9
wektor[1] #indeksujemy od 1, a nie od 0
[1] 0
"["(wektor,10) #ciekawostka
[1] 9
wektor[c(1,4,10,11)]
[1]  0  3  9 NA
wektor[3] <- 5
wektor
 [1] 0 1 5 3 4 5 6 7 8 9
wektor[c(4,5,6)] <- 7
wektor
 [1] 0 1 5 7 7 7 6 7 8 9
wektor[4:6] <- 0
wektor
 [1] 0 1 5 0 0 0 6 7 8 9
wektor[4:6] <- c(-1,-2,-3)
wektor
 [1]  0  1  5 -1 -2 -3  6  7  8  9
str(wektor)
 num [1:10] 0 1 5 -1 -2 -3 6 7 8 9
min(wektor)
[1] -3
max(wektor)
[1] 9
mean(wektor)
[1] 3
max(wektor+2)
[1] 11
wektor;wektor+2
 [1]  0  1  5 -1 -2 -3  6  7  8  9
 [1]  2  3  7  1  0 -1  8  9 10 11
max(wektor^2)
[1] 81
sum(wektor)
[1] 30
wektor3d <- c(1,1,0)
sqrt(sum(wektor3d^2))
[1] 1.414214
wektor3dprim <- c(-1,1,0)
wektor3d
[1] 1 1 0
wektor3dprim
[1] -1  1  0
sum(wektor3d*wektor3dprim) #iloczyn skalarny
[1] 0
wektor3d <- c(1,2,3)
prod(wektor3d[])
[1] 6
wektor1 <- 0:9
str(wektor1)
 int [1:10] 0 1 2 3 4 5 6 7 8 9
wektor2 <- seq(0,9,2)
str(wektor2)
 num [1:5] 0 2 4 6 8
wektor2 <- seq(from = -1, to = 9, by = 2)
str(wektor2)
 num [1:6] -1 1 3 5 7 9
wektor2 <- seq(0,9,length.out = 11)
str(wektor2)
 num [1:11] 0 0.9 1.8 2.7 3.6 4.5 5.4 6.3 7.2 8.1 ...
wektor3 <- rep(1,10)
str(wektor3)
 num [1:10] 1 1 1 1 1 1 1 1 1 1
wektor4 <- c(1L, 1.0, 1E1)
wektor4
[1]  1  1 10
typeof(wektor4)
[1] "double"
mode(wektor4)
[1] "numeric"
is.numeric(wektor4)
[1] TRUE
wektor4 <- c(1L, 1.0, 1E1, "1")
wektor4
[1] "1"  "1"  "10" "1" 
typeof(wektor4)
[1] "character"
mode(wektor4)
[1] "character"
is.numeric(wektor4)
[1] FALSE
as.numeric(wektor4)
[1]  1  1 10  1
is.numeric(wektor4)
[1] FALSE
wektor4 <- as.numeric(wektor4)
is.numeric(wektor4)
[1] TRUE
funkcja.kwadrat <- function(argument)
{
  result <- argument * argument #result - zmienna lokalna
  return(result)
}
funkcja.kwadrat(2)
[1] 4
funkcja.kwadrat(c(2,5))
[1]  4 25
funkcja.kwadrat(0:9)
 [1]  0  1  4  9 16 25 36 49 64 81
print(funkcja.kwadrat)
function(argument)
{
  result <- argument * argument #result - zmienna lokalna
  return(result)
}
<bytecode: 0x0000015fe5873330>
str(funkcja.kwadrat)
function (argument)  
 - attr(*, "srcref")= 'srcref' int [1:8] 1 20 5 1 20 1 1 5
  ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x0000015fe579db28> 
funkcja.kwadrat <- function(argument) argument^2
funkcja.kwadrat(2)
[1] 4
funkcja.kwadrat(c(2,5))
[1]  4 25
funkcja.kwadrat(0:9)
 [1]  0  1  4  9 16 25 36 49 64 81
print(funkcja.kwadrat)
function(argument) argument^2
<bytecode: 0x0000015fe5980f48>
str(funkcja.kwadrat)
function (argument)  
 - attr(*, "srcref")= 'srcref' int [1:8] 1 20 1 48 20 48 1 1
  ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x0000015fe58f4898> 
funkcja.kwadrat ~ argument^2 #formuła
funkcja.kwadrat ~ argument^2
funkcja.kwadrat(2)
[1] 4
funkcja.kwadrat(c(2,5))
[1]  4 25
funkcja.kwadrat(0:9)
 [1]  0  1  4  9 16 25 36 49 64 81
print(funkcja.kwadrat)
function(argument) argument^2
<bytecode: 0x0000015fe5980f48>
str(funkcja.kwadrat)
function (argument)  
 - attr(*, "srcref")= 'srcref' int [1:8] 1 20 1 48 20 48 1 1
  ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x0000015fe58f4898> 
wektor <- 1:10
wektor
 [1]  1  2  3  4  5  6  7  8  9 10
wynik <- funkcja.kwadrat(wektor)
wynik
 [1]   1   4   9  16  25  36  49  64  81 100
plot(wektor, wynik, type="b")


zmienna <- 1 #R-owcy to preferują
zmienna = 2 #R-owcy tego nie lubią
3 -> zmienna

paste("jeden", "dwa", "trzy")
[1] "jeden dwa trzy"
paste("jeden", "dwa", "trzy", sep = "")
[1] "jedendwatrzy"
paste("jeden", "dwa", "trzy", sep = ", ")
[1] "jeden, dwa, trzy"
paste(c("jeden", "dwa", "trzy"), collapse = ",")
[1] "jeden,dwa,trzy"
paste(c("jeden", "dwa", "trzy"), collapse = ",")
[1] "jeden,dwa,trzy"
s <- paste(c("jeden", "dwa", "trzy"), collapse = ",")
print(s)
[1] "jeden,dwa,trzy"
cat(s)
jeden,dwa,trzy
cat("jeden", "dwa", "trzy")
jeden dwa trzy
cat("jeden", "dwa", "trzy", sep=", ")
jeden, dwa, trzy
strsplit(s,",")
[[1]]
[1] "jeden" "dwa"   "trzy" 
sin(deg2rad(90))
[1] 1
LS0tDQp0aXRsZTogIlIgLSBwb2RzdGF3eSAoMjAyMC0wMy0wNSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIA0KDQpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ3RybCtTaGlmdCtFbnRlciouIA0KDQpgYGB7cn0NCnBsb3QoY2FycykNCnByaW50KGNhcnMpDQpgYGANCg0KQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLg0KDQpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkN0cmwrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4NCg0KVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLg0KDQpgYGB7cn0NCmNhdCgiSGVsbG8sIFdvcmxkIVxuV2l0YWogxZp3aWVjaWUhIikNCg0KI3R5cHkgcHJvc3RlDQp6bWllbm5hMSA8LSAxTCAjb2JpZWt0IG5hendhbnkgKHptaWVubmEpDQp6bWllbm5hMiA8LSAzLjANCnR5cGVvZih6bWllbm5hMSkNCnR5cGVvZih6bWllbm5hMikNCm1vZGUoem1pZW5uYTEpDQptb2RlKHptaWVubmEyKQ0Kem1pZW5uYTMgPC0gIjQuMCINCnR5cGVvZih6bWllbm5hMyk7IG1vZGUoem1pZW5uYTMpDQooem1pZW5uYTQgPC0gMSkgI3d5bXVzemEgd3lkcnVrDQp6bWllbm5hMQ0Kc3RyKHptaWVubmEzKQ0KDQp3ZWt0b3IgPC0gYygwLDEsMiwzLDQsNSw2LDcsOCw5KQ0KcHJpbnQod2VrdG9yKQ0KdHlwZW9mKHdla3RvcikNCm1vZGUod2VrdG9yKQ0KbGVuZ3RoKHdla3RvcikNCg0KInByaW50Iih3ZWt0b3IpDQoNCndla3Rvcg0Kd2VrdG9yWzFdICNpbmRla3N1amVteSBvZCAxLCBhIG5pZSBvZCAwDQoiWyIod2VrdG9yLDEwKSAjY2lla2F3b3N0a2ENCndla3RvcltjKDEsNCwxMCwxMSldDQp3ZWt0b3JbM10gPC0gNQ0Kd2VrdG9yDQp3ZWt0b3JbYyg0LDUsNildIDwtIDcNCndla3Rvcg0Kd2VrdG9yWzQ6Nl0gPC0gMA0Kd2VrdG9yDQp3ZWt0b3JbNDo2XSA8LSBjKC0xLC0yLC0zKQ0Kd2VrdG9yDQpzdHIod2VrdG9yKQ0KbWluKHdla3RvcikNCm1heCh3ZWt0b3IpDQptZWFuKHdla3RvcikNCg0KbWF4KHdla3RvcisyKQ0Kd2VrdG9yO3dla3RvcisyDQptYXgod2VrdG9yXjIpDQpzdW0od2VrdG9yKQ0KDQp3ZWt0b3IzZCA8LSBjKDEsMSwwKQ0Kc3FydChzdW0od2VrdG9yM2ReMikpDQp3ZWt0b3IzZHByaW0gPC0gYygtMSwxLDApDQp3ZWt0b3IzZA0Kd2VrdG9yM2RwcmltDQpzdW0od2VrdG9yM2Qqd2VrdG9yM2RwcmltKSAjaWxvY3p5biBza2FsYXJueQ0KDQp3ZWt0b3IzZCA8LSBjKDEsMiwzKQ0KcHJvZCh3ZWt0b3IzZFtdKQ0KDQp3ZWt0b3IxIDwtIDA6OQ0Kc3RyKHdla3RvcjEpDQp3ZWt0b3IyIDwtIHNlcSgwLDksMikNCnN0cih3ZWt0b3IyKQ0Kd2VrdG9yMiA8LSBzZXEoZnJvbSA9IC0xLCB0byA9IDksIGJ5ID0gMikNCnN0cih3ZWt0b3IyKQ0Kd2VrdG9yMiA8LSBzZXEoMCw5LGxlbmd0aC5vdXQgPSAxMSkNCnN0cih3ZWt0b3IyKQ0Kd2VrdG9yMyA8LSByZXAoMSwxMCkNCnN0cih3ZWt0b3IzKQ0KDQp3ZWt0b3I0IDwtIGMoMUwsIDEuMCwgMUUxKQ0Kd2VrdG9yNA0KdHlwZW9mKHdla3RvcjQpDQptb2RlKHdla3RvcjQpDQppcy5udW1lcmljKHdla3RvcjQpDQp3ZWt0b3I0IDwtIGMoMUwsIDEuMCwgMUUxLCAiMSIpDQp3ZWt0b3I0DQp0eXBlb2Yod2VrdG9yNCkNCm1vZGUod2VrdG9yNCkNCmlzLm51bWVyaWMod2VrdG9yNCkNCmFzLm51bWVyaWMod2VrdG9yNCkNCmlzLm51bWVyaWMod2VrdG9yNCkNCndla3RvcjQgPC0gYXMubnVtZXJpYyh3ZWt0b3I0KQ0KaXMubnVtZXJpYyh3ZWt0b3I0KQ0KDQpmdW5rY2phLmt3YWRyYXQgPC0gZnVuY3Rpb24oYXJndW1lbnQpDQp7DQogIHJlc3VsdCA8LSBhcmd1bWVudCAqIGFyZ3VtZW50ICNyZXN1bHQgLSB6bWllbm5hIGxva2FsbmENCiAgcmV0dXJuKHJlc3VsdCkNCn0NCmZ1bmtjamEua3dhZHJhdCgyKQ0KZnVua2NqYS5rd2FkcmF0KGMoMiw1KSkNCmZ1bmtjamEua3dhZHJhdCgwOjkpDQpwcmludChmdW5rY2phLmt3YWRyYXQpDQpzdHIoZnVua2NqYS5rd2FkcmF0KQ0KDQpmdW5rY2phLmt3YWRyYXQgPC0gZnVuY3Rpb24oYXJndW1lbnQpIGFyZ3VtZW50XjINCmZ1bmtjamEua3dhZHJhdCgyKQ0KZnVua2NqYS5rd2FkcmF0KGMoMiw1KSkNCmZ1bmtjamEua3dhZHJhdCgwOjkpDQpwcmludChmdW5rY2phLmt3YWRyYXQpDQpzdHIoZnVua2NqYS5rd2FkcmF0KQ0KDQpmdW5rY2phLmt3YWRyYXQgfiBhcmd1bWVudF4yICNmb3JtdcWCYQ0KZnVua2NqYS5rd2FkcmF0KDIpDQpmdW5rY2phLmt3YWRyYXQoYygyLDUpKQ0KZnVua2NqYS5rd2FkcmF0KDA6OSkNCnByaW50KGZ1bmtjamEua3dhZHJhdCkNCnN0cihmdW5rY2phLmt3YWRyYXQpDQoNCndla3RvciA8LSAxOjEwDQp3ZWt0b3INCnd5bmlrIDwtIGZ1bmtjamEua3dhZHJhdCh3ZWt0b3IpDQp3eW5paw0KcGxvdCh3ZWt0b3IsIHd5bmlrLCB0eXBlPSJiIikNCg0Kem1pZW5uYSA8LSAxICNSLW93Y3kgdG8gcHJlZmVydWrEhQ0Kem1pZW5uYSA9IDIgI1Itb3djeSB0ZWdvIG5pZSBsdWJpxIUNCjMgLT4gem1pZW5uYQ0KDQpwYXN0ZSgiamVkZW4iLCAiZHdhIiwgInRyenkiKQ0KcGFzdGUoImplZGVuIiwgImR3YSIsICJ0cnp5Iiwgc2VwID0gIiIpDQpwYXN0ZSgiamVkZW4iLCAiZHdhIiwgInRyenkiLCBzZXAgPSAiLCAiKQ0KcGFzdGUoYygiamVkZW4iLCAiZHdhIiwgInRyenkiKSwgY29sbGFwc2UgPSAiLCIpDQoNCnBhc3RlKGMoImplZGVuIiwgImR3YSIsICJ0cnp5IiksIGNvbGxhcHNlID0gIiwiKQ0KcyA8LSBwYXN0ZShjKCJqZWRlbiIsICJkd2EiLCAidHJ6eSIpLCBjb2xsYXBzZSA9ICIsIikNCnByaW50KHMpDQpjYXQocykNCg0KY2F0KCJqZWRlbiIsICJkd2EiLCAidHJ6eSIpDQpjYXQoImplZGVuIiwgImR3YSIsICJ0cnp5Iiwgc2VwPSIsICIpDQoNCnN0cnNwbGl0KHMsIiwiKQ0KYGBgDQoNCmBgYHtyfQ0KMiszDQpjYXQoMiszKQ0KMiszOzErMg0KMi0zDQoyKjMNCjIvMw0KMkwvM0wNCjIlLyUzICNkemllbGVuaWUgY2HFgmtvd2l0ZQ0KMiUlMw0KMl4zDQoyKiozICN0byBzYW1vIGNvIDJeMw0KDQoyPT0zDQp0eXBlb2YoMj09MykNCm1vZGUoMj09MykNCnN0cigyPT0zKQ0KMj09My0xDQoyIT0zDQoyIT0zLTENCg0KMisyKjINCigyKzIpKjINCnsyKzJ9KjINCg0KDQpwaQ0KcGktMy4xNDE1OTMNCjIqcGkNCnNpbigxKSAjZnVua2NqZSB0cnlnb25vbWV0cnljem5lIHByenlqbXVqxIUgYXJndW1lbnR5IHcgcmFkaWFuYWNoDQpzaW4ocGkpDQpzaW4ocGkvMikNCnNpbig5MCkNCg0KZGVnMnJhZCA8LSBmdW5jdGlvbihkZWcpDQp7DQpyZXN1bHQgPC0gZGVnKjIqcGkvMzYwDQpyZXR1cm4ocmVzdWx0KQ0KfQ0KZGVnMnJhZCgxODApDQpzaW4oZGVnMnJhZCg5MCkpDQpgYGANCg0K