R言語のデータ構造とアルゴリズム
R言語のデータ構造について尋ねると、たいていの答えはベクトル、リスト、行列、データフレーム、因子を挙げます。このパスが扱うのは、もうひとつの意味のほうです。アルゴリズムの授業で出てくるスタック、キュー、連結リスト、ヒープ、木、グラフで、そのどれもR言語の標準機能にはありません。そのひとつひとつをR言語で作り、それを使ってソート、再帰、グラフ探索を行い、最後は採点付きの面接問題で締めくくります。無料、ブラウザ完結、ほとんどのコースに修了証が付きます。
377 レッスン284 チャレンジ702 クイズの問題
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
パス全体で23枚の無料修了証
R言語のDSA、ステップごとに
各ステップは、すでにあるCoddyのコースの組み合わせで、どの「開始」ボタンもコースをR言語で開きます。まだR言語で教えていない3つのコースは、ステップの後にまとめて載せています。
- 1ステップ15件のコース(順番どおり)
- 2ステップ2
データ構造シリーズ パート2
このステップを始める開始双方向連結リスト、ヒープと優先度付きキュー、トライ木、グラフ、そして自己平衡するAVL木。R言語は教科書がヒープを描くときと同じく1からインデックスを数えるので、ノードの子は2 * iと2 * i + 1にあり、覚えておくべきずれがありません。開始5件のコース(順番どおり) - 3ステップ3
ソートアルゴリズム
このステップを始める開始バブル、選択、挿入、マージ、クイック、ヒープ、計数、基数ソートを、R言語で書き、可視化ツールで眺めます。sort()自体も、method引数でシェルソート、クイックソート、基数ソートを選ばせてくれます。このステップを終えれば、その選択が何を意味するのかがわかります。開始8件のコース(順番どおり)- バブルソート11 レッスン10 チャレンジ
- 選択ソート - DSAシリーズ9 レッスン4 チャレンジ54 問題1 プロジェクト
- 挿入ソート - DSAシリーズ9 レッスン4 チャレンジ1 プロジェクト
- マージソート - DSAシリーズ9 レッスン4 チャレンジ52 問題1 プロジェクト
- クイックソート - DSAシリーズ9 レッスン4 チャレンジ52 問題1 プロジェクト
- ヒープソート - DSAシリーズ9 レッスン4 チャレンジ54 問題1 プロジェクト
- カウンティングソート - DSAシリーズ9 レッスン4 チャレンジ52 問題1 プロジェクト
- Radix Sort - DSAシリーズ9 レッスン4 チャレンジ55 問題1 プロジェクト
- 4ステップ4
再帰的な考え方専用ページ
このステップを始める開始R言語での再帰のチャレンジ問題。R言語ではoptions(expressions = 5000)が呼び出しの入れ子の深さに上限を設け、Recallを使えば関数は自分の名前を書かずに自分自身を呼び出せます。呼び出しのたびに新しい環境が作られるので、深い再帰は時間だけでなくメモリも消費します。動的計画法とビット演算は、それぞれPythonとC++で教えているため、ステップの後にまとめて載せています。開始専用ページ - 5ステップ5
グラフアルゴリズム
このステップを始める開始幅優先探索と深さ優先探索、ダイクストラ法、ベルマン・フォード法、トポロジカルソート、クラスカル法とプリム法を、ステップ2で作ったグラフの上でR言語で学びます。R言語の標準機能には優先度付きキューがないので、ダイクストラ法に必要なのはステップ2のヒープです。そしてこれらは、igraphのようなネットワーク分析のパッケージが代わりに実行しているアルゴリズムです。開始7件のコース(順番どおり)- 幅優先探索 - グラフアルゴリズム9 レッスン4 チャレンジ54 問題1 プロジェクト
- 深さ優先探索 - グラフアルゴリズム9 レッスン4 チャレンジ54 問題1 プロジェクト
- ダイクストラ法 - グラフアルゴリズム9 レッスン4 チャレンジ54 問題1 プロジェクト
- ベルマン–フォード法 - グラフアルゴリズム9 レッスン4 チャレンジ54 問題1 プロジェクト
- トポロジカルソート - グラフアルゴリズム9 レッスン4 チャレンジ55 問題1 プロジェクト
- クラスカル法 - グラフアルゴリズム9 レッスン4 チャレンジ57 問題1 プロジェクト
- プリム法 - グラフアルゴリズム9 レッスン4 チャレンジ55 問題1 プロジェクト
- 6ステップ6
面接練習
このステップを始める開始10本の面接チャレンジパックと2つのコーディング問題集をR言語で。初見の問題を、テストケースで採点されながら、解説なしで、いつもデータ分析に使っている言語で解きます。開始12件のコース(順番どおり)- コーディング面接チャレンジ - パック I3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック II3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック III3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック IV3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック V3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック VI3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック VII3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック VIII3 レッスン3 チャレンジ
- コーディング面接チャレンジ - パック IX3 レッスン3 チャレンジ
- コーディング面接チャレンジ - X3 レッスン3 チャレンジ
- コーディング問題集32 レッスン31 チャレンジ
- コーディング問題集:Vol. 225 レッスン24 チャレンジ
実践で学ぶ
実際のコードを書き、データベースをクエリし、ウェブサイトを構築し、AIプロンプトをマスターしましょう。インタラクティブなレッスンで現代の開発者に必要なすべてのスキルを網羅しています。
連続記録を築こう
継続して進捗を見守りましょう!毎日のコーディング習慣を追跡し、フリーズ日で連続記録を守り、毎日参加することで報酬を獲得しましょう。
12 日連続
明日も戻ってきて連続記録を維持しましょう!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
ダブル・オア・ナッシング
7日中5日目
連続記録フリーズ
2 left
どこでも学べる
コーディングの旅を持ち歩こう!セットアップ不要、ダウンロード不要 - 開いてすぐにコーディング開始。iOS、Android、Webで4.9星評価で利用可能。
あなたは一人じゃない
グローバルリーダーボードで競い、友達を招待して報酬を獲得し、お互いの成功を祝いましょう。プログラミングは友達と一緒の方が楽しい!
あらゆる学び方に対応
読む・聴く・自分を試す・AIに聞く・学んだことを調べる。どんな学び方にも対応したレッスンです。
変数は、後でプログラム内で参照できる値を格納する、名前のついた入れ物です。
Pythonでは、名前、イコール記号、格納したい値の順で書くことで作成します。
値は後から変えられます。再代入すると、名前は新しい値を指すようになります。
修了証を取得
完了したすべてのコースで証明書を獲得しましょう。LinkedInプロフィールや履歴書に追加して、雇用主にプログラミングスキルをアピールしましょう。
R言語のDSAをCoddyで学ぶ理由
- もうひとつのデータ構造。たいていのR言語のチュートリアルがデータ構造と呼ぶのはR言語自身の型で、それはCoddyのR言語コースで教えています。アルゴリズムの授業でいうデータ構造とは、スタック、キュー、連結リスト、ヒープ、木、グラフのことで、どれもR言語の標準機能にはありません。それらをR言語で作ることで、アナリストは、データの仕事では飛ばされがちなコンピュータサイエンスの半分を身につけられます。
- R言語のセマンティクスのコスト。R言語は変更時にコピーするので、ループの中で
c(x, value)によって伸ばしていくベクトルは毎回コピーされ、線形で済むはずの仕事に2乗の時間がかかります。これは事前に領域を確保すれば直ります。環境(environment)は参照セマンティクスとハッシュによる検索を持つので、R言語のハッシュマップとなり、その場で変更したいノードの自然な置き場所になります。 - パスのほぼすべてをR言語で。データ構造、ソート、グラフアルゴリズム、再帰のチャレンジ、面接パックは、すべてR言語で教えています。別の言語で教える3つのコースは、それぞれへのリンクとともにステップの後にまとめて載せています。動的計画法とPython面接シリーズ(Python)、そしてビット演算(C++)です。R言語から読むと、ビット演算は勝手が違います。R言語では
&と|は論理演算子で、ビット演算はbitwAndのような関数だからです。 - 面接と同じ形で採点。どのレッスンもテストケースで確認されるR言語のチャレンジで終わり、失敗したときはBugsyがあなたのコードを読み、答えを教えずに修正の方向へ導きます。ほとんどのコースで無料の修了証が発行され、それぞれ専用URLで検証できます。
R言語でのDSA学習についてよくある質問
このパスは、ベクトルやデータフレームのようなR言語のデータ構造についてのものですか?
R言語はデータ構造とアルゴリズムの学習に向いていますか?
R言語でハッシュマップを作るにはどうすればよいですか?
h <- new.env()として、h[[key]] <- valueで格納し、h[[key]]で読み出します。存在しないキーならNULLが返ります。環境はハッシュ化され、文字列をキーとし、参照セマンティクスを持つので、ベクトルやリストと違って、関数の中で変更すれば呼び出し元から見ても変更されています。名前付きリストは辞書のように見えますが、振る舞いは値です。関数の中で変更しても、呼び出し元のコピーはそのままです。R言語では深い再帰が失敗しますか?
options(expressions = 5000)が評価の入れ子の深さに上限を設けていて、長い鎖をたどる深さ優先探索のような深い再帰は、evaluation nested too deeplyというエラーで止まります。このオプションを引き上げれば多少の余裕はできますが、確実な解決策はループと明示的なスタックを使うことです。そのスタックこそ、ステップ1で作る構造です。このパスで、R言語で教えていないコースはどれですか?
&、|、^、<<は、それぞれbitwAnd、bitwOr、bitwXor、bitwShiftLという関数になります。