私はRの初心者です.2つのデータセットをID列に基づいて結合したいと思います。データセット2のID番号がデータセット1に存在する場合、データセット2のこの特定の行のデータをデータセット1の行に追加します。条件に基づいたrのデータのマージと新しい列の作成
第2に、一致がある場合は、その特定の行/マッチに対するマッチと呼ばれる新しい列の「1」と、マッチしなかった場合は「0」となる。
例:追加された列と
Dataset 1:
Id category
123 3
124 1
125 2
Dataset 2:
Id score category
123 0.24 3
124 0.83 1
126 0.92 2
決勝例:私はこのこれまでに試した
Id score category match
123 0.24 3 1
124 0.83 1 1
125 NA 1 0
126 0.92 2 1
(および他のいくつかの組み合わせ)が、それは私に良い結果を得られませんでした。
data <- merge(df1, df2, by ="ID" , all.x = TRUE)
本当に助けていただきありがとうございます。
再現コード:
df1 <- data.frame(ID=c("123","124","125"), category=c(3,1,2)
df2 <- data.frame(ID=c("123","124","126"), score=("0.24","0.83","0.92"), category=c("3","1","2")
を呼び出すことにより、出力を更新あなたは 'character' NAを持っていますか?引用符で囲むべきではありません。入力データが示され、再現可能な例の 'df2'は一致しません。バイナリ列を作成するには、 '%in%'を 'as.integer'と一緒に使用してください。 – akrun
期待される出力と再現可能なコードが同じであるあなたのサンプルデータは同じではありません。あなたはID「126」を持っていませんか? – user5249203
データフレーム(内部、外部、左、右)を結合(マージ)する方法は?](http://stackoverflow.com/questions/1299871/how-to-join-merge-data-frames-inner) -outer-left-right) –