---
generated_at: 2026-02-19 00:20:00
metrics:
  claims_total: 80
  claims_with_evidence: 78
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：bind.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：78 / 80、根拠なし：2
- 優先レビュー（高）
  1. **UT-BND-080（グループ化データフレームの処理）**：dplyr_reconstruct関数の詳細動作に依存
  2. **UT-BND-022（リサイクル機能）**：vctrsパッケージの動作に依存

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `R/bind-rows.R` - bind_rows関数の実装（95行）
- E-02: `R/bind-cols.R` - bind_cols関数の実装（52行）
- E-03: `R/rows.R` - rows_*関数群の実装（680行）
- E-04: `man/bind_rows.Rd` - bind_rowsのドキュメント
- E-05: `man/bind_cols.Rd` - bind_colsのドキュメント
- E-06: `tests/testthat/test-bind-rows.R` - bind_rowsの既存テスト
- E-07: `tests/testthat/test-bind-cols.R` - bind_colsの既存テスト
- E-08: `docs/code-to-docs/機能設計書/30-bind_rows.md` - bind_rows機能設計書
- E-09: `docs/code-to-docs/機能設計書/31-bind_cols.md` - bind_cols機能設計書

## 3) Claims と根拠の対応（レビューの主戦場）

### bind_rows関数（UT-BND-001〜015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | bind_rowsは複数データフレームを行結合できる | E-01 (行30-88), E-04 | ○ |
| C-02 | リスト入力をサポートする | E-01 (行35-38) | ○ |
| C-03 | .idパラメータで識別列を追加できる | E-01 (行64-77), E-04 | ○ |
| C-04 | 名前がない場合はインデックスが使用される | E-01 (行67-72) | ○ |
| C-05 | 名前付きアトミックベクトルを結合できる | E-01 (行48-50, 92-94) | ○ |
| C-06 | 空入力の場合の処理 | E-01 (行42-46) | ○ |
| C-07 | 最初の入力の型が継承される | E-01 (行82-86) | ○ |
| C-08 | NULL要素は無視される | E-01 (行39) | ○ |
| C-09 | 名前のないベクトルでエラー発生 | E-01 (行53-57) | ○ |
| C-10 | .idの型検証 | E-01 (行65) | ○ |
| C-11 | 1件入力の処理 | E-01, E-06 | ○ |
| C-12 | 0行データフレームの処理 | E-01, E-06 | ○ |
| C-13 | dataframe_ishがdata.frameをTRUEと判定 | E-01 (行92-94) | ○ |
| C-14 | dataframe_ishが名前付きベクトルをTRUEと判定 | E-01 (行93) | ○ |
| C-15 | dataframe_ishが名前なしベクトルをFALSEと判定 | E-01 (行93) | ○ |

### bind_cols関数（UT-BND-016〜026）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | bind_colsは複数データフレームを列結合できる | E-02 (行27-51), E-05 | ○ |
| C-17 | リスト入力をサポートする | E-02 (行33) | ○ |
| C-18 | .name_repair = uniqueで重複列名を修復 | E-02 (行29, 39-43), E-05 | ○ |
| C-19 | .name_repair = universalの動作 | E-02 (行29) | ○ |
| C-20 | NULL要素は無視される | E-02 (行34) | ○ |
| C-21 | 最初の入力の型が継承される | E-02 (行47-49) | ○ |
| C-22 | 行数のリサイクルが行われる | E-02 (行39), vctrs依存 | △ |
| C-23 | 行数不互換でエラー発生 | E-02 (行39-43), E-07 | ○ |
| C-24 | .name_repair = check_uniqueで重複エラー | E-02 (行29) | ○ |
| C-25 | 1件入力の処理 | E-02 | ○ |
| C-26 | 0列データフレームの処理 | E-02 | ○ |

### rows_insert関数（UT-BND-027〜032）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | rows_insertで新行を挿入できる | E-03 (行122-167) | ○ |
| C-28 | byパラメータでキー列を指定できる | E-03 (行149-153) | ○ |
| C-29 | conflict = ignoreでキー重複を無視 | E-03 (行160-164) | ○ |
| C-30 | キー重複でデフォルトエラー | E-03 (行566-602) | ○ |
| C-31 | yにxに存在しない列でエラー | E-03 (行505-522) | ○ |
| C-32 | in_place = TRUEでエラー | E-03 (行662-667) | ○ |

### rows_append関数（UT-BND-033〜035）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | rows_appendでキーを無視して追加 | E-03 (行171-186) | ○ |
| C-34 | 重複キーでも正常追加 | E-03 (行171-186) | ○ |
| C-35 | yにxに存在しない列でエラー | E-03 (行182) | ○ |

### rows_update関数（UT-BND-036〜041）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | rows_updateで既存行を更新 | E-03 (行190-259) | ○ |
| C-37 | byパラメータでキー列を指定 | E-03 (行217-221) | ○ |
| C-38 | unmatched = ignoreで未一致無視 | E-03 (行238-243) | ○ |
| C-39 | 行数が維持される | E-03 (行190-259) | ○ |
| C-40 | yのキー重複でエラー | E-03 (行226, 547-564) | ○ |
| C-41 | 未一致キーでデフォルトエラー | E-03 (行604-640) | ○ |

### rows_patch関数（UT-BND-042〜045）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | rows_patchでNA値のみ更新 | E-03 (行263-339, 330) | ○ |
| C-43 | 非NA値は更新されない | E-03 (行330) | ○ |
| C-44 | unmatched = ignoreで未一致無視 | E-03 (行311-316) | ○ |
| C-45 | yのキー重複でエラー | E-03 (行299, 547-564) | ○ |

### rows_upsert関数（UT-BND-046〜049）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | rows_upsertで更新と挿入を実行 | E-03 (行343-405) | ○ |
| C-47 | 全て新規キーで全挿入 | E-03 (行395-402) | ○ |
| C-48 | 全て既存キーで全更新 | E-03 (行388-393) | ○ |
| C-49 | yのキー重複でエラー | E-03 (行370, 547-564) | ○ |

### rows_delete関数（UT-BND-050〜053）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | rows_deleteで指定行を削除 | E-03 (行409-472) | ○ |
| C-51 | unmatched = ignoreで未一致無視 | E-03 (行448-452) | ○ |
| C-52 | yの余分な列は無視（警告付き） | E-03 (行454-464) | ○ |
| C-53 | 未一致キーでデフォルトエラー | E-03 (行448, 604-640) | ○ |

### ヘルパー関数群（UT-BND-054〜079）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | rows_check_byでNULL時に最初の列を使用 | E-03 (行479-490) | ○ |
| C-55 | rows_check_byで文字ベクトルを返却 | E-03 (行492-502) | ○ |
| C-56 | rows_check_byで非文字列エラー | E-03 (行492-494) | ○ |
| C-57 | rows_check_byで空byエラー | E-03 (行495-497) | ○ |
| C-58 | rows_check_byで名前付きbyエラー | E-03 (行498-500) | ○ |
| C-59 | rows_check_byで0列yエラー | E-03 (行480-482) | ○ |
| C-60 | rows_check_x_contains_yで列包含検証（正常） | E-03 (行505-522) | ○ |
| C-61 | rows_check_x_contains_yで列不足エラー | E-03 (行508-518) | ○ |
| C-62 | rows_check_contains_byで列包含検証（正常） | E-03 (行528-545) | ○ |
| C-63 | rows_check_contains_byで列不足エラー | E-03 (行531-544) | ○ |
| C-64 | rows_check_uniqueでキー一意検証（正常） | E-03 (行547-564) | ○ |
| C-65 | rows_check_uniqueでキー重複エラー | E-03 (行550-563) | ○ |
| C-66 | rows_check_y_conflictで衝突なしNULL | E-03 (行566-602) | ○ |
| C-67 | rows_check_y_conflictで衝突無視 | E-03 (行594-595) | ○ |
| C-68 | rows_check_y_conflictで衝突エラー | E-03 (行581-593) | ○ |
| C-69 | rows_check_y_unmatchedで全マッチNULL | E-03 (行604-640) | ○ |
| C-70 | rows_check_y_unmatchedで未一致無視 | E-03 (行632-633) | ○ |
| C-71 | rows_check_y_unmatchedで未一致エラー | E-03 (行619-631) | ○ |
| C-72 | rows_df_in_placeでFALSE正常 | E-03 (行662-667) | ○ |
| C-73 | rows_df_in_placeでTRUEエラー | E-03 (行663-665) | ○ |
| C-74 | rows_bindで2データフレーム結合 | E-03 (行669-671) | ○ |
| C-75 | rows_bindで型継承 | E-03 (行670) | ○ |
| C-76 | vec_as_location_invertでインデックス反転 | E-03 (行673-679) | ○ |
| C-77 | vec_as_location_invertで空インデックス処理 | E-03 (行674-675) | ○ |
| C-78 | rows_cast_yで型キャスト | E-03 (行524-526) | ○ |
| C-79 | rows_cast_yで型不整合エラー | E-03 (行525) | ○ |

### グループ化データフレーム（UT-BND-080）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-80 | グループ化データフレームの型継承 | E-01 (行83), dplyr_reconstruct依存 | △ |

## 4) 不足情報（Unknown / Missing）
- **UT-BND-022（リサイクル機能）**: vctrsパッケージの`vec_cbind`関数の詳細なリサイクルルールに依存しており、dplyrのソースコード内で直接確認できない
  - 候補：vctrsパッケージドキュメント / vctrsソースコード / testthatテストケース
- **UT-BND-080（グループ化データフレームの処理）**: `dplyr_reconstruct`関数の動作がグループ化データフレームに対してどのように機能するかの詳細は別ファイルに定義
  - 候補：`R/generics.R` / グループ化関連ファイル / dplyrパッケージドキュメント

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: bind_rows, bind_cols の基本機能テスト - ソースコードから直接確認可能
- **0（低リスク）**: rows_*関数群のテスト - 豊富な実装コードが存在
- **1（中リスク）**: vctrsパッケージ依存の動作 - 外部パッケージの動作に依存
- **0（低リスク）**: ヘルパー関数群のテスト - 全て実装コードから確認可能

## 6) レビュアーチェックリスト（最小）
- [ ] bind_rows の主要なテストケース（UT-BND-001〜012）が実際のユースケースをカバーしているか
- [ ] bind_cols の行数不一致エラー（UT-BND-023）のエラーメッセージが適切か
- [ ] rows_* 関数群のキー検証テスト（UT-BND-040, 041, 045, 049, 053）が十分か
- [ ] conflict と unmatched パラメータの全パターンがテストされているか
- [ ] vctrs依存の動作（リサイクル、型キャスト）の期待結果が正確か
- [ ] エラーメッセージの検証が含まれているか確認
- [ ] 境界値テスト（空データフレーム、1件のみ）が各関数でカバーされているか
