我在使用R将编码表“翻译”回来时遇到问题。所以我有一个表格,表格元素由 XX、XY、YY 组成。我有第二个表 (.csv),其中 X 和 Y 的正确含义 - 所以它可能看起来像,如果 X=1 和 Y=2,
XY 转换为 12 XX 转换为 11 ...
任何人都可以暗示在R中编写这样一个程序/一段代码的良好起点吗?
我在使用R将编码表“翻译”回来时遇到问题。所以我有一个表格,表格元素由 XX、XY、YY 组成。我有第二个表 (.csv),其中 X 和 Y 的正确含义 - 所以它可能看起来像,如果 X=1 和 Y=2,
XY 转换为 12 XX 转换为 11 ...
任何人都可以暗示在R中编写这样一个程序/一段代码的良好起点吗?
这与查找表略有不同,因为您实际上是在正则表达式和替换每个元素的部分。qdap (Quantitative Discourse Analysis Package) 有一个mgsub
(multiple gsub
) 函数可以轻松处理这个问题。
library(qdap)
#recreate scenerio with quick character vector (no need for quotes)
z <- factor(qcv(XX,XY,YY))
#replace all X and Ys with 1 and 2
mgsub(pattern = c("X", "Y"), replacement = c(1, 2), text.var = z)
#Even better if you have the code book read in, say it looks like this:
code.book <- data.frame(symb = c("X", "Y"), replacement = c(1, 2))
# > code.book
# symb replacement
# 1 X 1
# 2 Y 2
mgsub(code.book$symb, code.book$replacement, z)