以下の練習問題(計算問題のみ)を解く。
http://cat.hackingisbelieving.org/lecture/tohoku-u/NGS-R-Bioconductor-1st.html
問題1
num <- 1:100
for (i in seq_along(num)) {
if (i%%3 == 0 && i%%5 == 0) {
print("FizzBuzz")
} else if (i%%3 == 0) {
print("Fizz")
} else if (i%%5 == 0) {
print("Buzz")
} else {
print(i)
}
}
## [1] 1
## [1] 2
## [1] "Fizz"
## [1] 4
## [1] "Buzz"
## [1] "Fizz"
## [1] 7
## [1] 8
## [1] "Fizz"
## [1] "Buzz"
## [1] 11
## [1] "Fizz"
## [1] 13
## [1] 14
## [1] "FizzBuzz"
## [1] 16
## [1] 17
## [1] "Fizz"
## [1] 19
## [1] "Buzz"
## [1] "Fizz"
## [1] 22
## [1] 23
## [1] "Fizz"
## [1] "Buzz"
## [1] 26
## [1] "Fizz"
## [1] 28
## [1] 29
## [1] "FizzBuzz"
## [1] 31
## [1] 32
## [1] "Fizz"
## [1] 34
## [1] "Buzz"
## [1] "Fizz"
## [1] 37
## [1] 38
## [1] "Fizz"
## [1] "Buzz"
## [1] 41
## [1] "Fizz"
## [1] 43
## [1] 44
## [1] "FizzBuzz"
## [1] 46
## [1] 47
## [1] "Fizz"
## [1] 49
## [1] "Buzz"
## [1] "Fizz"
## [1] 52
## [1] 53
## [1] "Fizz"
## [1] "Buzz"
## [1] 56
## [1] "Fizz"
## [1] 58
## [1] 59
## [1] "FizzBuzz"
## [1] 61
## [1] 62
## [1] "Fizz"
## [1] 64
## [1] "Buzz"
## [1] "Fizz"
## [1] 67
## [1] 68
## [1] "Fizz"
## [1] "Buzz"
## [1] 71
## [1] "Fizz"
## [1] 73
## [1] 74
## [1] "FizzBuzz"
## [1] 76
## [1] 77
## [1] "Fizz"
## [1] 79
## [1] "Buzz"
## [1] "Fizz"
## [1] 82
## [1] 83
## [1] "Fizz"
## [1] "Buzz"
## [1] 86
## [1] "Fizz"
## [1] 88
## [1] 89
## [1] "FizzBuzz"
## [1] 91
## [1] 92
## [1] "Fizz"
## [1] 94
## [1] "Buzz"
## [1] "Fizz"
## [1] 97
## [1] 98
## [1] "Fizz"
## [1] "Buzz"
問題2
num <- 1:100
i <- num
num[i%%3 == 0] <- "Fizz"
num[i%%5 == 0] <- "Buzz"
num[i%%3 == 0 & i%%5 == 0] <- "FizzBuzz"
num
## [1] "1" "2" "Fizz" "4" "Buzz" "Fizz"
## [7] "7" "8" "Fizz" "Buzz" "11" "Fizz"
## [13] "13" "14" "FizzBuzz" "16" "17" "Fizz"
## [19] "19" "Buzz" "Fizz" "22" "23" "Fizz"
## [25] "Buzz" "26" "Fizz" "28" "29" "FizzBuzz"
## [31] "31" "32" "Fizz" "34" "Buzz" "Fizz"
## [37] "37" "38" "Fizz" "Buzz" "41" "Fizz"
## [43] "43" "44" "FizzBuzz" "46" "47" "Fizz"
## [49] "49" "Buzz" "Fizz" "52" "53" "Fizz"
## [55] "Buzz" "56" "Fizz" "58" "59" "FizzBuzz"
## [61] "61" "62" "Fizz" "64" "Buzz" "Fizz"
## [67] "67" "68" "Fizz" "Buzz" "71" "Fizz"
## [73] "73" "74" "FizzBuzz" "76" "77" "Fizz"
## [79] "79" "Buzz" "Fizz" "82" "83" "Fizz"
## [85] "Buzz" "86" "Fizz" "88" "89" "FizzBuzz"
## [91] "91" "92" "Fizz" "94" "Buzz" "Fizz"
## [97] "97" "98" "Fizz" "Buzz"
問題3
for (i in 1:4) {
print(sd(iris[, i]))
}
## [1] 0.8281
## [1] 0.4359
## [1] 1.765
## [1] 0.7622
問題4
for (i in 1:4) {
print(mean(iris[, i]))
}
## [1] 5.843
## [1] 3.057
## [1] 3.758
## [1] 1.199
問題5
print(colMeans(iris[, 1:4]))
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 5.843 3.057 3.758 1.199
問題6
print(sapply(iris[, 1:4], sd))
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 0.8281 0.4359 1.7653 0.7622
問題7
library(BrainStars)
ids <- c("1439627_at", "1439631_at", "1439633_at")
my.esets <- getBrainStars(query = ids, type = "expression")
boxplot(exprs(my.esets))
発展問題-初級1
(省略)
発展問題-初級2
arr <- c("A", "T", "G", "C")
names(arr) <- c("T", "A", "C", "G")
arr[names(arr) == "A"]
## A
## "T"
発展問題-初級3
num <- 1:100
sink("result_fizzbuzz.txt")
for (i in seq_along(num)) {
if (i%%3 == 0 && i%%5 == 0) {
cat("FizzBuzz\n")
} else if (i%%3 == 0) {
cat("Fizz\n")
} else if (i%%5 == 0) {
cat("Buzz\n")
} else {
cat(paste(i, "\n", sep = ""))
}
}
## 1
## 2
## Fizz
## 4
## Buzz
## Fizz
## 7
## 8
## Fizz
## Buzz
## 11
## Fizz
## 13
## 14
## FizzBuzz
## 16
## 17
## Fizz
## 19
## Buzz
## Fizz
## 22
## 23
## Fizz
## Buzz
## 26
## Fizz
## 28
## 29
## FizzBuzz
## 31
## 32
## Fizz
## 34
## Buzz
## Fizz
## 37
## 38
## Fizz
## Buzz
## 41
## Fizz
## 43
## 44
## FizzBuzz
## 46
## 47
## Fizz
## 49
## Buzz
## Fizz
## 52
## 53
## Fizz
## Buzz
## 56
## Fizz
## 58
## 59
## FizzBuzz
## 61
## 62
## Fizz
## 64
## Buzz
## Fizz
## 67
## 68
## Fizz
## Buzz
## 71
## Fizz
## 73
## 74
## FizzBuzz
## 76
## 77
## Fizz
## 79
## Buzz
## Fizz
## 82
## 83
## Fizz
## Buzz
## 86
## Fizz
## 88
## 89
## FizzBuzz
## 91
## 92
## Fizz
## 94
## Buzz
## Fizz
## 97
## 98
## Fizz
## Buzz
sink()
発展問題-中級1/2
(省略)
発展問題-中級3
※Windowsなのでmulticoreパッケージがない。parallelパッケージで代用。
getFZBZ <- function(i) {
if (i%%3 == 0 && i%%5 == 0) {
res <- "FizzBuzz"
} else if (i%%3 == 0) {
res <- "Fizz"
} else if (i%%5 == 0) {
res <- "Buzz"
} else {
res <- i
}
return(res)
}
library(parallel)
cl <- makeCluster(rep("localhost", 4), type = "SOCK")
parSapply(cl, 1:100, getFZBZ)
## [1] "1" "2" "Fizz" "4" "Buzz" "Fizz"
## [7] "7" "8" "Fizz" "Buzz" "11" "Fizz"
## [13] "13" "14" "FizzBuzz" "16" "17" "Fizz"
## [19] "19" "Buzz" "Fizz" "22" "23" "Fizz"
## [25] "Buzz" "26" "Fizz" "28" "29" "FizzBuzz"
## [31] "31" "32" "Fizz" "34" "Buzz" "Fizz"
## [37] "37" "38" "Fizz" "Buzz" "41" "Fizz"
## [43] "43" "44" "FizzBuzz" "46" "47" "Fizz"
## [49] "49" "Buzz" "Fizz" "52" "53" "Fizz"
## [55] "Buzz" "56" "Fizz" "58" "59" "FizzBuzz"
## [61] "61" "62" "Fizz" "64" "Buzz" "Fizz"
## [67] "67" "68" "Fizz" "Buzz" "71" "Fizz"
## [73] "73" "74" "FizzBuzz" "76" "77" "Fizz"
## [79] "79" "Buzz" "Fizz" "82" "83" "Fizz"
## [85] "Buzz" "86" "Fizz" "88" "89" "FizzBuzz"
## [91] "91" "92" "Fizz" "94" "Buzz" "Fizz"
## [97] "97" "98" "Fizz" "Buzz"
stopCluster(cl)