研究室と講義の R コード

水圏植物生態学研究室 では藻場生態系の機能と保全について研究しています。

このサイトは研究室と学部生用の基礎統計学と教育関係共同利用拠点の 水産海洋データ解析演習 のために準備しました。

マニュアルの更新日:2024年07月07日 16:47:43 JST

【重要】R コードに自身あるが、日本語は怪しいです。It is easier to explain this stuff in English.

コードは考えずにコピペしないでください。 コードに使用したデータは研究室のサーバにあるので、公開されていません。

研究室の皆さん: 研究室用のデータは RStudio の ~/Lab_Data/ に入っています。

はここ https://cran.r-project.org/ からダウンロードできます。Windows ユーザは Rtools43 もインストールしましょう。ページ内の Rtools43 installer のリンクを探してね。

RStudio もインストールしましょう。Rのデフォルトの IDE はとても使いにくいです。

重要: Windows にインストールするとき、OneDrive にインストールされないように注意してください。 詳細は 奥村先生のサイト を参考にしてください。

Session Information

この資料について

たとえば

  • <-<- の合字 (リガチャー, ligature) です (ALT + -)
  • |>|> の合字です (CTRL + SHIFT + M)
  • <=<= の合字です
  • !=!= の合字です

よく使うリンク

Quick Reference

ヘルプ

?mean                          # mean() 関数のヘルプをみる
help.search("mean")            # 文字列で検索
help(package = "tidyverse")    # パッケージのヘルプをみる

ライブラリー (library)

install.packages("tidyverse")   # CRANサーバからパッケージをインストールする

一回インストールすればいいので、install.packages() は毎回する必要はない。

library(tidyverse)              # パッケージをライブラリーから読み込む
nlstools::preview()             # パッケージ内の関数を直接使う

プログラミング文の基礎

for loop

for (変数名 in シークエンス) {
  繰り返し実行するコード
}
for(i in 1:10) {
  j = j + i
  print(j)
}

while loop

while(条件) {
  繰り返し実行するコード
}
i = 0
while(i <= 10) {
  i = i + 1
  print(i)
}

if else

if(条件) {
  コード
} else {
 条件を満たさないときのコード
}
x1 = sample(1:6, 1) 
x2 = sample(1:6, 1)
if(near(x1 + x2, 7)) {
  print(paste(x1, x2))
} else {
  print(x1 + x2)}

条件判定

  • x == y : x と y は等しい
  • x != y : x と y は等しくない
  • x > y : x が y より大きい
  • x < y : x が y より小さい
  • x >= y : x が y 以上
  • x <= y : x が y 以下
  • is.na(x) : x が欠損値である
  • is.null(x) : x が null 値である
  • any(x %in% y) : x が y に含まれる

function

関数名 = function(変数1, 変数2, ...) {
  コード
}
se = function(x, na.rm = FALSE) {
  s = sd(x, na.rm = na.rm)
  n = length(na.omit(x))
  s / sqrt(n - 1)
}

ファイルの入出力

研究室では、ファイルの入出力に tidyverse パッケージの関数を使っています。

library(tidyerse)
# ファイルの読み込み
dset = read_table("filename.txt") # タブ・コンマ区切りのテキストファイル
dset = read_csv("filename.csv")   # コンマ区切りの csv ファイル
dset = read_rds("filename.rds")   # R オブジェクトファイル
# ファイルの書き込み。文字のエンコーディングは UTF-8 です。
write_tsv(dset, "filename.txt")         # タブ区切りの txt ファイル
write_csv(dset, "filename.csv")         # コンマ区切りの csv ファイル
write_excel_csv(dset, "filename.csv")   # Excel用 コンマ区切りの csv ファイル
write_rds(dset, "filename.rds")         # R オブジェクトファイル

資料は自由に使ってください (MIT License)。 サイトは Quarto で作成しました。