我有一个包含许多整数变量列的数据框,每列代表食物频率问卷中的一个特定问题。我想将这些列重新编码为数字变量,表示每月食用的食物份数。mapvalues()
inplyr
似乎是正确的功能,但我不断收到警告消息,因为并非所有食物都记录了全方位的响应:
The following `from` values were not present in `x`: 4, 5, 6, 7, 8
设置warn_missing = false
不返回警告消息,但我的数据仍然没有被重新编码。
示例代码(nails 是我的数据框,foodnames 是变量名列表):
for (food in foodnames[c(7:81, 95:97)]){
mapvalues(eval(parse(text=paste("nails$", food))), from = c(1:8),
to = c(0, 1, 2.5, 4, 8, 14, 22, 28)), warn_missing = FALSE)
}
即使它们不包含从 1 到 8 的所有整数,如何让 R 重新编码这些变量?提前致谢。