-2

私はいくつかの検索を行いましたが、私の問題に対する答えを見つけることができませんでした.

student_id整数の列と他のいくつかの列を持つデータフレームがあるとします。また、2 つの列を含む別のマッピング テーブルもあり、1番目は文字列student_idで、2 番目student_nameは文字列です。student_id列をに置き換える最良の方法は何student_nameですか? マッピング テーブルは一意ですが、データ フレームには同じ学生 ID が複数存在する可能性があることに注意してください。

dplyrそれが役立つ場合は、パッケージ化に取り組んでいtidyrます。

4

1 に答える 1

0

grades過去10年間のフィールド(グレード、学生ID、クラス番号)を持つ学校が提供するすべてのクラスから授与されたすべてのグレードのレコードを含むあなたのdata.frameであり、すべてrosterの名前を持つ学生ごとに1つのレコードを持つリストです同じ期間に学校に通った学生のID。

名簿には生徒ごとに 1 つのレコードがあり、成績には生徒ごとに複数のレコードがあります。

dplyr を呼び出すことで、名簿から学生の名前をプッシュできます。

library(dplyr)
gradesWithStudentNames <- 
        grades %>% 
        left_join(select(roster,studentID,studentName),
                  by=`studentID')

左結合にはgrades、一致する学生がいない場合でも、テーブルのすべての行が含まれますroster(その場合、学生の名前は失われます)。を使用inner_joinすると、そのようなレコードが省略され、どのクラスにも出席しなかったouter_join学生のレコードが含まれます (クラス番号と成績の値が欠落しています)。roster

「Two-table Verbs」というタイトルのビネットを読むことをお勧めします。browseVignettes('dplyr')

于 2015-02-01T08:13:49.533 に答える