首页 > 解决方案 > 使用参考列表重新编码特定列值

问题描述

我的数据框看起来像这样

data = data.frame(ID=c(1,2,3,4,5,6,7,8,9,10),
              Gender=c('Male','Female','Female','Female','Male','Female','Male','Male','Female','Female'))

我有一个看起来像这样的参考列表 -

ref=list(Male=1,Female=2)

我想Gender使用此参考列表替换列中的值,而不向我的数据框添加新列。

这是我的尝试

do.call(dplyr::recode, c(list(data), ref))

这给了我以下错误-

没有适用于“重新编码”的方法应用于“data.frame”类的对象

任何输入将不胜感激

标签: r

解决方案


你可以unlist ref给你一个命名的代码向量,然后用你的数据索引它:

transform(data,Gender=unlist(ref)[as.character(Gender)])
   ID Gender
1   1      1
2   2      2
3   3      2
4   4      2
5   5      1
6   6      2
7   7      1
8   8      1
9   9      2
10 10      2

推荐阅读