我有一个具有自我评级和同行评级的数据集。数据集采用长格式。在将数据集重新整形为宽格式之前,我想给自我评级和同行评级一个共同的ID,以便我以后可以通过该ID将同等评级与自我评级相匹配。数据如下所示:
| questionnaire | ID | REF | SERIAL | x | y |
|---------------|----|------|--------|----|----|
| self | 1 | 1234 | NA | 4 | NA |
| self | 2 | 2345 | NA | 6 | NA |
| peer | NA | NA | 1234 | NA | 8 |
| peer | NA | NA | 2345 | NA | 4 |
自我评级具有引用变量(“REF”),其引用同等评级。对等评级在变量“SERIAL”中具有相同的值。
我现在正试图将相同的ID归属于同等评级,作为自评级的ID,其通过SERIAL值引用对等体。该表应如下所示:
| questionnaire | ID | REF | SERIAL | x | y |
|---------------|----|------|--------|----|----|
| self | 1 | 1234 | NA | 4 | NA |
| self | 2 | 2345 | NA | 6 | NA |
| peer | 1 | NA | 1234 | NA | 8 |
| peer | 2 | NA | 2345 | NA | 4 |
我怎么能做到最好?
答案 0 :(得分:0)
simplify = TRUE
答案 1 :(得分:0)
对不起,上面的例子与我的真实数据相比太简单了。以下是数据摘录。
structure(list(Questionnaire = c("self", "peer", "self", "peer",
"peer", "peer"), ID.each = c("5213", "5214", "5215", "5216",
"5217", "4073"), ID.match = c("5213", NA, "5215", NA, NA, "3584"
), SERIAL = c(NA, "YHL7ZRAER7", NA, "AHGPZZ8UEV", "2N3FYHKVW1",
NA), REF1 = c("YHL7ZRAER7", NA, "AHGPZZ8UEV", NA, NA, NA), REF2= c("PYAV9D6EH2",
NA, "2N3FYHKVW1", NA, NA, NA), x = c(4, NA, 4, NA, NA, NA), y = c(NA,
4, NA, 4, 3, 3)), .Names = c("Questionnaire", "ID.each", "ID.match",
"SERIAL", "REF1", "REF2", "x", "y"), row.names = c("5213", "5214",
"5215", "5216", "5217", "4073"), class = "data.frame")
每份调查问卷,无论是自己还是同伴,都有自己的ID(不应更改此值)。每个同伴报告都属于一个特定的自我报告。一些对等报告(在此示例中为具有ID 4073的对等报告)已经具有与相应自报告的公共ID。这些不需要改变。但对于一些同行报道,我希望他们拥有与他们自我报告相同的“ID.match”。例如,对等体5214应具有“ID.match”5213,因为其SERIAL号指的是自报告5213中的REF1。对等体5217应具有ID.match 5215(自我报告5215中的REF2)。
我希望我的数据看起来很清楚,我希望上面的NeRd解决方案可以转移到这些数据。我一直试图找到自己的解决方案,但我不知道。