この例のデータセットと希望する結果をよく見て、この質問の目的を確認してください。私が探しているのは、合併したデータセットソリューションではありません。だから私はここでも答えは見つけられませんでした:How to join (merge) data frames (inner, outer, left, right)?、ここではUse apply() to assign value to new columnです。新しいcolnamesに条件を満たしている場合、値を割り当てるためのソリューションを指します。ここでforループ内の新しい列にセル値を割り当てます。
私がやりたいものの再現性のあるイラスト:
Email
1 [email protected]
2 [email protected]
3 [email protected]
4 [email protected]
5 [email protected]
Code Email
1 Z001 [email protected]
2 Z002 [email protected]
3 Z003 [email protected]
4 Z004 [email protected]
5 Z005 [email protected]
所望の出力:これは、次の例のデータセットになり
Email <- as.factor(c("[email protected]", "[email protected]", "[email protected]","[email protected]", "[email protected]"))
dataset1 <- data.frame(Email)
Code <- as.factor(c("Z001", "Z002", "Z003","Z004","Z005"))
Email <- as.factor(c("[email protected]", "[email protected]", "[email protected]", "[email protected]","[email protected]"))
dataset2 <- data.frame(Code, Email)
Email Z002 Z004
1 [email protected] NA 1
2 [email protected] 1 NA
3 [email protected] NA NA
4 [email protected] NA NA
5 [email protected] NA NA
をだから私dataset2のEmailがdataset1に存在するかどうかをチェックするループを作成したい場合、この条件が真である場合dataset2の電子メールに関連付けられたコードが、この観測のセル値として1を持つdataset1に新しい列名として割り当てられていることを確認します。これを達成しようとする私の試みと、望ましい出力の例は、質問を明確にしています。
(私はそれが間違っている知っているが、私の意図を示している)、それを修正するために私自身の試み:
for(i in 1:nrow(dataset2)){
if(dataset2$Email[i] %in% dataset1$Email)
dataset1[,dataset2$Code[i]] <- dataset2$Code[i]
dataset1[,dataset2$Code[i]][i] <- 1
}
は素晴らしいことだ、誰もが私を助けることができれば。
ありがとうございました!私はあなたの助けが大いに評価されるようにこれを長い間探してきました:) – Floris