【发布时间】:2012-02-10 18:44:59
【问题描述】:
我有大数据,迷你版如下:
Pr1 <- c("AA", "BB", "BB", "BB", "BB", "--", "AA", "--")
Pr2 <- c("BB", "AA", "AA", "AA", "AA", "--", "--", "BB")
varA <- c("BB", "AA", "AA", "BB", "BB", "AA", "--", "BB")
varB <- c("AA", "BB", "AA", "BB", "BB", "AA", "--", "BB")
varC <- c("AB", "--", "AB", "BB", "AB", "AA", "--", "AB")
varD <- c("BB", "AA", "AB", "BB", "BB", "AB", "AB", "BB")
mydf <- data.frame (Pr1, Pr2, varA, varB, varC, varD)
数据如下:
mydf
Pr1 Pr2 varA varB varC varD
1 AA BB BB AA AB BB
2 BB AA AA BB -- AA
3 BB AA AA AA AB AB
4 BB AA BB BB BB BB
5 BB AA BB BB AB BB
6 -- -- AA AA AA AB
7 AA -- -- -- -- AB
8 -- BB BB BB AB BB
我需要根据前两个重新编码数据框中的其余变量:
如果 varA 到 varD 的元素(数据集结束)-
- 等于 Pr1 的值比 varA 到 varD 的元素将是“A”,
等于 Pr2 值而不是 varA 到 varD 的元素将为“B”
不等于 Pr1 和 Pr2 而 varA 到 varD 将是“H”
然而 -- 是缺失值,上述规则不适用于这种情况。
如果缺少 Pr1 和 Pr2 (--),则所有值的比较结果为“NA”。
因此预期的结果:
Pr1 Pr2 varA varB varC varD
1 AA BB B A H B
2 BB AA B A -- B
3 BB AA B B H H
4 BB AA A A A A
5 BB AA A A H A
6 -- -- NA NA NA NA
7 AA -- NA NA NA NA
8 -- BB NA NA NA NA
我可以找到一种方法来执行它。
【问题讨论】: